pg_restore.exe
データベースからダンプファイルを実行しようとすると、同じように何十ものエラーがスローされます。
ERROR: insert or update on table "someTable" violates foreign key constraint "aConstraintName"
これは、データベースをダンプファイル(このファイルは運用データベースから取得)から復元する前に空にしたという事実によるものです。 ...
を呼び出す前に、すべてのテーブルの制約とすべての外部キーを無効にし、pg_restore.exe
その後、制約と外部キーを再度有効にする方法はありますか。
SOで何か面白いものを見つけました。制約チェックをコミット時間まで延期します。しかし、制約を延期した後にpg_restore.exe
内部から呼び出すことはできないと思いpsql.exe
ます。
また、10年前のこの投稿もあり、制約を削除してから再度追加することを提案しています。または、pg_class reltriggersの値を0に変更すると、制約に対しても可能になります...しかし、それは良い習慣よりもハッキングされているのではないかと思います...
この場合のベストプラクティスは何ですか?フラグを使用pg_dump.exe
して-clean
使用すると、データベースを復元するときに制約チェックをバイパスするダンプが作成されますか?