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