2016-10-24 16 views
1

HerokuがホストするPSQLデータベースから特定のスキーマをローカルファイルにpg_dumpしようとしています。私ドンので、フラグとしてパスワードを提供するために、どのような方法がありますHeroku上のPSQLデータベースのPG_DUMPを自動化

> 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) 

-

Herokuのは、私はいくつかのスキーマをダンプしようとした私は、上記に基づきフォーム

# postgres://username:[email protected]:port/database 
postgres://abcde:[email protected]:5762/riza3dj029012 

DATABASE_URLを提供します手動で入力する必要はありませんか?私はスクリプトでこれを自動化したい。

私は--no-passwordが存在することを知っていますが、それが何であるかはわかりません。なぜなら、パスワードを求めるプロンプトが表示されなくなり、認証が(明らかに)失敗するからです。

ありがとうございます!

+2

をあなたが作ってみました.pgpassファイルa la https://www.postgresql.org/docs/9.5/static/libpq-pgpass.htmlまたはhttp://stackoverflow.com/questions/2893954/how-to-pass-in-password- to-pg-dump? – eabates

+0

それは私のためにそれをした、ありがとう。それは動作しますが、ローカルマシン上に本番用の資格情報を持つファイルを作成する必要があるため、理想的ではありません。スクリプトが失敗した場合、 'pgpass'ファイルはクリアされません。私のローカルマシンはプロダクションDBの資格情報を保持しています。特に厳しいセキュリティ監査を受ける企業では本当に悪いセキュリティプラクティスです。私はPSQLが代わりにパスワードコマンドラインオプションを取ったのを願っています。 – user2490003

答えて

1

コメントに記載されているように、この目的のために.pgpassファイルを作成することができます。ただ、次の形式で必要なだけの行を持つユーザのホームディレクトリに.pgpassという名前のファイルを作成https://www.postgresql.org/docs/9.5/static/libpq-pgpass.html

:詳細情報は、Postgresのための公式ドキュメントに記載されています

hostname:port:database:username:password 
関連する問題