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 ……(以下略)