我有需要调用psql的Django应用程序。我这样做是在芹菜丝,看起来像这样:subprocess.popen和psql
@task()
def insert_sqldump_threaded(username, database, file):
host = database.server.db_address
work = subprocess.Popen([settings.PSQL,
"-f%s" % file,
"-d%s" % database.db_name,
"-h%s" % host,
"-U%s" % settings.DB_ADMIN_USER
], env = {'PGPASSFILE': settings.DB_PASSFILE}
)
work.wait()
return work.returncode
在我的开发服务器的PGPASSFILE看起来是这样的:
localhost:5432:*:postgres:postgres
这应该是罚款。
的问题是,我得到这个时候函数被调用是在psql错误:
psql: could not translate host name "localhost" to address: Unknown server error
而现在它变得非常奇怪,但是当我不提交“ENV”变量,PSQL似乎认识到主机。至少它会要求输入密码。
关于如何解决这个问题的任何想法?
当你这样说的时候,它有点显而易见:)谢谢! – Kai 2011-02-16 17:57:04