Closed3

ローカルのPostgreSQLをバックアップ・リストアする

bisquebisque

開発中にDBをバックアップして、作業後にリストアしたいケースがあったので、手順をメモしておきます。

bisquebisque

バックアップ

pg_dump を使います。

Macでのインストール手順

pg_dump は libpq に含まれているので、 libpq を brew でインストールします。

brew install libpq

インストールしたらパスを通します。

export PATH="/opt/homebrew/opt/libpq/bin:$PATH"

pg_dump でバックアップ

pg_dump -h localhost -U postgres DB名 > 出力ファイル名

このように実行することで、DBのスキーマ定義とレコードの両方をSQL文としてファイルに出力します。

bisquebisque

リストア

DROP DATABASECREATE DATABASE でデータベースを初期化します。

DBに接続中のコネクションがあるためDROPできない場合は以下を実行してコネクションを削除します。

SELECT pg_terminate_backend(pid)
  FROM pg_stat_activity
 WHERE datname = 'DB名'
   AND pid <> pg_backend_pid();

DBに接続してバックアップしたファイルのSQLを実行してリストアします。

psql -h localhost -U postgres -d DB名 < 出力ファイル名
このスクラップは2023/09/14にクローズされました