2
ダンプの復元中にすべての制約とテーブルチェックを無効にします
私は私のPostgreSQLデータベースのダンプを取得しました: pg_dump -U user-name -d db-name -f dumpfile 次に、次のコマンドを使用して別のデータベースに復元します。 psql X -U postgres -d db-name-b -f dumpfile 私の問題は、データベースに参照制約、チェック、トリガーが含まれていることと、これらのチェック(特にチェック)の一部が復元中に失敗することです。たとえば、テーブルへの行の挿入は、他の無関係なテーブルで条件が成立するかどうかをチェックCHECKするplpgsql関数を呼び出すに関連付けられます。後者のテーブルがpsql前者の前に読み込まれない場合、エラーが発生します。 以下は、一度ダンプするpg_dumpと復元できないデータベースを生成するSSCCEです。 CREATE OR REPLACE FUNCTION fail_if_b_empty () RETURNS BOOLEAN AS $$ SELECT EXISTS (SELECT 1 FROM b) $$ LANGUAGE SQL; CREATE TABLE IF NOT EXISTS a ( i INTEGER NOT NULL ); …