MW211 EXIT

devlog
PostgreSQL/pg_dumpのパスワード
2013年06月16日
pg_dumpを実行した直後に以下のようにパスワード入力を促される。
┌──────────────────────────────────────┐
│>pg_dump -U ユーザID データベース名 > バックアップファイル.sql              │
│パスワード:                                                                 │
└──────────────────────────────────────┘

これをバッチで自動化する場合には、パスワード設定ファイルってのを
書き換えればいいらしい。
┌──────────────────────────────────────┐
│>ECHO localhost:5432:*:ユーザID:パスワード>                                 │
│                                          "%APPDATA%\postgresql\pgpass.conf"│
└──────────────────────────────────────┘

ただし、書き換えた後に設定を元に戻した方がいいので、
「pgpass.conf」の中身を控えておいた方がよい。
「%APPDATA%」の部分はWindowsの環境変数として定義してるので、
「echo」コマンドで確認すればよい。
┌──────────────────────────────────────┐
│>echo "%APPDATA%"                                                           │
│C:\Users\xxxx\AppData\Roaming                                               │
└──────────────────────────────────────┘

なお、これを自動化するならば、以下のように「pgpass.bak」(名称は任意)に
退避して戻すって感じか。
┌──────────────────────────────────────┐
│>COPY /Y "%APPDATA%\postgresql\pgpass.conf"                                 │
│                                           "%APPDATA%\postgresql\pgpass.bak"│
├──────────────────────────────────────┤
│>ECHO localhost:5432:*:ユーザID:パスワード>                                 │
│                                          "%APPDATA%\postgresql\pgpass.conf"│
├──────────────────────────────────────┤
│pg_dump -U ユーザID データベース名 > バックアップファイル.sql               │
├──────────────────────────────────────┤
│>MOVE /Y "%APPDATA%\postgresql\pgpass.bak"                                  │
│                                          "%APPDATA%\postgresql\pgpass.conf"│
└──────────────────────────────────────┘
分類:PostgreSQL