私は現在、顧客のデータベースの1つをこの顧客の基本構造から新しいデータベースを作成することができるようにダンプしていますが、彼らの私的なデータに沿って。pg_dumpからテーブル上の外部キー制約を強制する--exclude-table-data
これまでのところ、私はpg_dump
と--exclude_table
とexclude-table-data
のコマンドを組み合わせて成功させました。これは、私がこの作業に効果的に必要なデータだけを持って来ることを可能にしました。
しかし、私が持っていたデータを参照する他の行と一緒に残したデータの一部を参照する行が混在するテーブルがいくつかあり、これは復元操作中に私にいくつかの問題を引き起こしています。具体的には、ダンプがこれらのテーブルの特定の列に対してFOREIGN KEY
の制約を適用しようとすると、このテーブルのデータを持たないため、それぞれの外部テーブルに一致するデータがないキーがある行があるため失敗します。
ダンプの完了後にデータベースにログインできることは分かっていますが、もはや存在しないデータを参照する行を削除して自分で制約を作成することができますが、できるだけプロセスを自動化したいと思います。 pg_dump
またはpg_restore
(または他のプログラム)が、テーブルBを参照する場合はテーブルAから行を持ち出さないように指示する方法はありますか?テーブルBのデータはバックアップから除外されていますか?あるいは、テーブルのデータをインポートする前に、その特定の外部キーをアクティブにしたいとPostgresに指示しますか?
参考までに、私はPostgreSQL 9.2をHREL 7サーバで使用しています。