【发布时间】:2023-02-04 04:51:03
【问题描述】:
我有以下 Python 代码可在本地运行以生成转储。 当我使用 pg_dump 命令时,我想在没有数据库连接提示密码的情况下对它进行 docker 化,而且我也不知道我将在 dockerfile 中提供什么而不是 postgres_bin = r"C:\Program Files\PostgreSQL\13\垃圾桶”
import os
import paramiko
import subprocess
postgres_bin = r"C:\Program Files\PostgreSQL\13\bin"
dump_file = "database_dump.sql"
with open(dump_file, "w") as f:
result = subprocess.call([os.path.join(postgres_bin, "pg_dump"), "-Fp", "-d", "XXX", "-U", "XXX", "-h", "XXX", "-p", "XXX"], stdout=f)
transport.close()
此代码在本地工作。我想让相同的代码工作,而不必在我本地的提示中输入密码。
我怎样才能做到这一点 ?
【问题讨论】:
-
您可以使用
PGPASSWORD或PGPASSFILE环境变量,如 the documentation 中所述。 -
我试过了,但没有用。我认为你是对的,我没有很好地使用它。请问你有例子吗?
标签: python postgresql docker subprocess pg-dump