概要
開発をしていると不具合調査や再現テストのために、本番環境やステージング環境のデータをローカルに取り込むことがあります。
今回はそのような状況を想定した、既存データ(ローカルで開発中のデータ)をエクスポートして調査データ(本番またはステージングデータ)をインポートする手順について例を示します。
エクスポート
エクスポートするにはpg_dumpを使用します。
ローカルにPostgreSQLがインストールされていれば、以下のような場所にあるはずです。
C:\Program Files\PostgreSQL\12\bin\pg_dump
コマンド
コマンドプロンプトで以下を入力する。
[pg_dumpのインストールパス] -h [ホスト名] -p [ポート番号] -U [ユーザー名] -d [スキーマ名] -v > [エクスポートするファイルパス]
※-v : (オプション)進捗をコンソール出力する
(例) “C:\Program Files\PostgreSQL\12\bin\pg_dump” -h localhost -p 5432 -U postgres -d sample_schema -v > “C:\postgresql\dump\local.dump”
既存データの全削除
既存のデータが残っていると大抵インポートに失敗するため、事前に全データを削除します。
コマンド
コマンドプロンプトでPostgreSQLにログインする。
psql -h [ホスト名] -p [ポート番号] -U [ユーザー名] -d [スキーマ名]
スキーマを全削除する。
drop schema public cascade;
create schema public;
インポート
調査対象のデータをインポートします。
コマンド
コマンドプロンプトで以下を入力する。
psql -h [ホスト名] -p [ポート番号] -U [ユーザー名] -d [スキーマ名] -f [インポートファイルパス]
(例) psql -h localhost -p 5432 -U postgres -d govmates -f "C:\postgresql\dump\staging.dump"
まとめ
- エクスポートにはpg_dumpを使用する。
- 既存データがあるとインポートに失敗する可能性があるので全削除しておく。
- インポートではpsqlコマンドを使用する。
参考
PostgreSQL で DB ダンプをエクスポート・インポートする
PostgreSQL ですべてのテーブルを削除する方法
コメント