尽管在.pgpass中找到了密码,Postgresql仍会从命令行提示输入密码

时间:2014-04-08 16:20:16

标签: python postgresql remote-access

我正在尝试从python脚本中远程连接到psql服务器。尽管我已正确设置.pgpass,但是当我运行脚本时,远程服务器会提示输入密码,在这种情况下,按Enter将使其成功读取.pgpass的密码。

由于我计划设置运行此脚本的cron作业,因此我想避免使用密码提示。这里的大多数搜索都说设置PGPASS或PGPASSFILE会消除密码提示,但在我的情况下却不行。

据我所知,我可以使用ORM库进行连接,但这可能是一种过度杀伤,因为这个查询是一个永不改变的单行。

我有什么想法可以摆脱密码提示吗?

os.environ["PGPASSFILE"]=".pgpass"
dest=os.path.dirname(os.path.abspath(__file__))
#get the newest data from the table                                                                                                                
subprocess.call("psql -U username --no-password -h host.address -W mydatabasename -c  '\copy (select ....) To '%s/latest.csv' With CSV'"%dest,shell=True)

1 个答案:

答案 0 :(得分:0)

解决了问题,查询中的-W修饰符强制psql提示输入密码,删除-W并且工作正常。