Closed3
ローカルのPostgreSQLをバックアップ・リストアする
開発中にDBをバックアップして、作業後にリストアしたいケースがあったので、手順をメモしておきます。
バックアップ
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文としてファイルに出力します。
リストア
DROP DATABASE
と CREATE 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にクローズされました