前回、PostgreSQL のパスワードを環境変数で設定するのは PostgreSQL 的には非推奨と書きましたが 推奨されている方法について書いておきます。
[参考]
環境変数 - PostgreSQL 9.3.2文書
以下のような内容を「~/.pgpass」に記載します。
hostname:port:database:username:password
ファイル名は、環境変数 PGPASSFILE で変えることができます。
複数記載することができ、 上から順にマッチしたものを使用してくれます。 環境変数と違って複数設定しておけるのは便利ですね。
localhost:*:testdb1:testuser1:testpassword1 localhost:*:testdb1:testuser2:testpassword2 localhost:*:testdb2:testuser3:testpassword3
"*" も使用できます。 ホスト名は、Unixドメインソケットの場合 でも "localhost" で良いそうです。
[参考]
パスワードファイル - PostgreSQL 9.3.2文書
$ chmod 600 ~/.pgpass
ファイルの権限を 600 にしていないとエラーになります。