【PosgreSQL】既存データをエクスポートして別データをインポートし直す方法

当ページのリンクには広告が含まれています。

目次

概要

開発をしていると不具合調査や再現テストのために、本番環境やステージング環境のデータをローカルに取り込むことがあります。

今回はそのような状況を想定した、既存データ(ローカルで開発中のデータ)をエクスポートして調査データ(本番またはステージングデータ)をインポートする手順について例を示します。

エクスポート

エクスポートするには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 ですべてのテーブルを削除する方法

最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

リーマンショックの影響で26歳の時にIT業界から離れ、紆余曲折を経て34歳でエンジニアに復帰しました。
復帰前は開発未経験でしたが、独学した知識と面接時のコミュニケーション力で見事開発エンジニアとして復帰しました!
今はフリーランスエンジニアとして仕事をしています。

■保有資格
・Java Gold SE 11

コメント

コメントする

CAPTCHA


目次