我试图从我的本地计算机上传文件到PostgreSQL数据库,我得到的错误是:
pcon = 'postgresql://user:password@ipaddress:5432/dbname::tablename'
path = os.path.normpath(
'C:/Mar-2015.csv'))
o.odo(path, pcon, sep='|')
我试图运行的命令是:
{{1}}
看起来PostgreSQL试图在远程服务器而不是本地机器上找到该文件。在服务器上运行脚本(并将文件路径更改为服务器上的某个位置)运行正常,这似乎证实了我的怀疑。
是否可以使用odo将文件从本地计算机上传到远程PostgreSQL计算机?我正在使用Amazon RDS。
答案 0 :(得分:2)
我有一个类似的问题,使用odo
将CSV加载到PostgreSQL数据库但在Docker容器中。你是对的,odo
在PostgreSQL数据库的主机中查找文件。我设法使这个工作将文件夹挂载到客户端和服务器容器中的相同路径。
要解决您的问题,您可以使用scp
将文件上传到服务器并运行Python脚本,您需要SSH访问服务器
scp /path/to/local/file username@remote:/path/to/server/file
然后像往常一样运行脚本。