psqlにはデータベース名やホスト名、ユーザ名などを指定するオプションはあるが、パスワードを指定するオプションはない。
これではシェルスクリプトなどで、psqlを使いたい場合に困ってしまう。
そこで調べてみると、「$HOME/.pgpass」を作って、そこに書けばいいらしい。(マニュアル)
そしてWindowsでは「%APPDATA%\postgresql\pgpass.conf」となる。
いずれも書式は同じで
hostname:port:database:username:password
UNIX系OSではファイルのパーミッションを「0600」にしておかないと無視されるらしいので注意。
あと、「PGPASSWORD」という環境変数もあるらしいのですが、非推奨となってます。
コメント
psqlでパスワード指定方法
SaikyoLine.jp: パスワード入力なしでpsql psqlにはデータベ…
[postgresql] .pgpassで自動化すべし
もともとPostgreSQLマニュアルで見つけたんですが、SQLの自動実行とかでパスワード入力をどうするかというのは常に付きまとう問題ですが、.pgpa…