ダンプからデータベースを復元するために、データベースのすべてのテーブルで、空にしたコンテンツ(postregsql 8.3)のすべての制約を一時的に無効にします。
制約を簡単にバイパスできるpg_constraintテーブルのフィールドを変更する安全な方法はありますか?
ドキュメントpg_constraintを見ると、そうは思いません。
pg_constraintテーブルの内容を削除してから、再度入力することはできますか?
そうでない場合、制約と外部キーでいっぱいのテーブルを使用してデータベースを復元/コピーするにはどうすればよいですか?(宛先データベースにはスキーマがありますが、すべての列が空です)。
編集: Erwin Brandstetterの答えは私の正確な質問に対する良い答えですが(賢明な警告付き)...復元中の外部キーエラーを回避するための私の一般的な問題の解決策は、pg_restoreを使用するときにフラグ--disable-triggersを使用することです。
最後に、私の2行のコマンドは次のようになります。
pg_dump.exe -h %ipAddress% -p 5432 -U postgres -F c -a -v -f %file% mydb
pg_restore.exe -h localhost -p 5432 -U postgres -d mydb -v %file% --disable-triggers
そしてそれは大丈夫です。