Corredor

ウェブ、プログラミングの勉強メモ。

2020-11-28 : このブログは2020年末をもって更新停止する予定です。
2021年以降は Neo's World (https://neos21.net/) で記事を公開していきますので、今後はコチラをご覧ください。
このブログの記事は2021年以降、Neo's World に順次移行していきます。元記事および本ブログは移行次第削除する予定です。

PostgreSQL で DB ダンプをエクスポート・インポートする

PostgreSQL で DB ダンプをエクスポートしたり、インポートしたりする。

エクスポートは次のように行う。

$ pg_dump -h 'example.com' -p 1921 -U postgres -d my_schema -v > ./example.dump
  • -v オプションを付けると、どのテーブルやリソースをエクスポートしているかという進捗がコンソール出力される
  • -s オプションを付けるとスキーマ定義だけ落とせる。データは要らなくてテーブル構造だけほしい時なんかに

コレで、プレーンテキスト形式で落とせる。

インポート時は psql コマンドで。pg_restore というコマンドもあるが、コレは Tar やバイナリ形式でダンプを取得した場合に使うコマンド。

$ psql -h example.com -p 1921 -U postgres -d my_schema -f ./example.dump

-d オプションでデータベース名を指定しておかないと、デフォルトの postgres データベーススキーマにインポートされちゃったりして面倒臭いので注意。CREATE DATABASE は予め行っておこう。

ちなみに、Postgres への接続時のパスワード入力を省略するには、環境変数 PGPASSWORD で指定すると簡単。

# 次のようにコマンドを実行すれば、パスワード入力を省略できる
$ PGPASSORD=my_password pg_dump ……(以下略)
$ PGPASSORD=my_password psql ……(以下略)