【发布时间】:2017-03-06 20:08:56
【问题描述】:
我正在尝试将 Heroku 托管的 PSQL 数据库中的某些模式 pg_dump 转储到本地文件中。
Heroku 为我提供了DATABASE_URL 格式
# postgres://username:password@host:port/database
postgres://abcde:wxyz@ec2-21-82-72-112.compute-1.amazonaws.com:5762/riza3dj029012
基于以上我尝试转储一些模式 -
> pg_dump --username=abcde --host=ec2-21-82-72-112.compute-1.amazonaws.com --port=5762 --dbname=riza3dj029012 --create --schema=my_schema --password > ~/pg_dump.dmp
> password: (enter password)
有什么方法可以将密码作为标志提供,这样我就不必手动输入了?我想在脚本中自动执行此操作。
我知道--no-password 存在,但不确定它有什么用,因为它只是阻止提示输入密码然后身份验证(显然)失败。
谢谢!
【问题讨论】:
-
您是否尝试过像 postgresql.org/docs/9.5/static/libpq-pgpass.html 或 stackoverflow.com/questions/2893954/… 那样制作 .pgpass 文件?
-
这对我有用,谢谢。虽然它有效,但并不理想,因为我必须在本地机器上使用我的生产凭据创建一个文件。如果脚本失败,
pgpass文件没有被清除,我的本地计算机现在持有生产数据库凭据 - 非常糟糕的安全实践,尤其是在经过严格安全审计的公司中。我希望 PSQL 只使用密码命令行选项。
标签: postgresql heroku pg-dump