pg_dump - Postgres データベースをスクリプトファイルにダンプします
pg_dump [ -a ][ -d ][ -D ][ -f filename][ -h hostname][ -o ][ -p port][ -s ][ -t table][ -v ][ -u] dbname
pg_dumpは Postgres データベースをクエリコマンドを含むスクリプトファイルにダンプするユーティリティです。そのスクリプトファイルは ASCII フォーマットで、違うマシンやアーキテクチャだとしてもデータベースを再構築するのに使えます。pg_dumpはすべてのユーザ定義型、関数、表、インデックス、集約関数、演算子などを再生成するために必要なクエリをつくり出します。加えて、すべてのデータは ASCII フォーマットにコピーされますので、容易くコピーしなおしたりテキスト編集ツールに読み込んだりできます。
pg_dumpはある postgresSQL のインストール場所から他絵移す時に、データベースの内容をダンプするのに有用です。pg_dumpを走らせた後、とくに下に挙げた制約を考慮して、その出力スクリプトファイルに警告がないかどうかを調べるべきでしょう。
pg_dump は次のオプションを取ることができます:
スキーマはなしでデータのみをダンプします
データを適切な挿入文字としてダンプします
属性名と一緒にデータをダンプします
出力ファイルを指定します
サーバのホスト名を指定します
オブジェクトID (oid) もダンプします
サーバのポート番号を指定します
データはなしでスキーマのみをダンプします
このテーブルだけをダンプします
パスワード認証を使います。ユーザ名とパスワードのプロンプトを出します。
冗長(verbose)モードを指定します
もし dbname が与えられなければ、環境変数 DATABASE の値が使われます。
pg_dumpにはいくつかの制約があります。その制約のほとんどはシステムカタログからのメタ情報を取り出す難点に起因します。
pg_dump はユーザ定義のルールと VIEW表を理解しませんし、それらを適切にダンプできないでしょう。(これはルールが文字ではなく、プランとしてカタログに保存されている事実のためです。)
pg_dump は部分インデックスを理解しません。(この理由は上記のものと同じです。部分インデックスの述部はプランとして保存されます。)
pg_dump は巨大オブジェクトを扱えません。巨大オブジェクトは無視されますので、手動で扱わなくてはなりません。
データベースをダンプするには:
pg_dump >db.out
それを再読み込みするには:
psql -e database <db.out