我正在尝试从我的本地计算机将文件上传到 PostgreSQL 数据库,我得到的错误是:
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not open file "C:\Mar-2015.csv" for reading: No such file or directory
我尝试运行的命令是:
pcon = 'postgresql://user:password@ipaddress:5432/dbname::tablename'
path = os.path.normpath(
'C:/Mar-2015.csv'))
o.odo(path, pcon, sep='|')
看起来 PostgreSQL 正在尝试在远程服务器上而不是在本地计算机上查找文件。在服务器上运行脚本(并将文件路径更改为服务器上的某个位置)运行正常,这似乎证实了我的怀疑。
是否可以使用 odo 将文件从我的本地机器上传到远程 PostgreSQL 机器?我正在使用 Amazon RDS。
最佳答案
我在使用 odo
将 CSV 加载到 PostgreSQL 数据库时遇到了类似的问题,但在 Docker 容器中。没错,odo
在 PostgreSQL 数据库的主机中查找文件。我设法使这项工作能够将文件夹安装到客户端和服务器容器中的相同路径。
要解决您的问题,您可以使用 scp
将文件上传到您的服务器并运行 Python 脚本,您需要通过 SSH 访问您的服务器
scp/path/to/local/file username@remote:/path/to/server/file
然后照常运行脚本。
关于Python odo CSV 到 SQL - 没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38475305/