PostgreSQL: pg_dump を使ってデータベースをコピーする
pg_dump はデータベース構造、データ、あるいはその両方を SQL スクリプトとして出力できるツールである。
old_db から new_db にデータをコピーするには次の手順でコマンドを実行する。
1. 新しいデータベースを作成する
まず createdb コマンドを使い、コピー先となるデータベースを作成する。
% createdb -U postgres --encoding=UTF-8 new_db --owner=foo
データベースの作成権限のあるユーザ(ここでは postgres)で作成し、オプションでデータベースの所有者を foo に渡している。
2. 既存のデータを SQL ファイルに出力する
% pg_dump -U postgres -O old_db > dump.sql
ここでユーザを postgres としたが、 old_db を読み取れるユーザならば何でもよい。
-O
オプションを使うことで、テーブルの所有者を指定するコマンドを省略することができる。
出力は標準出力になされるので、リダイレクトを使ってファイルに出力している。