解決策を得ました。
外部キー制約チェックを停止するには、テーブルのトリガーを無効にする必要がありました。
トリガーを無効にする
def disable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" DISABLE TRIGGER ALL;')
トリガーを有効にする
def enable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" ENABLE TRIGGER ALL;')
重要な注意事項 :
-
このドキュメントリンク によると 、
execute()
の2番目の引数としてリストを渡すことができます メソッド(例:テーブル名を動的に渡したい場合)が、これにより変数が自動的にエスケープされ、構文的に間違ったPostgreSQLクエリが形成される可能性があります(修正に多くの時間がかかりました) -
トリガーを正しくオンに戻すようにしてください
-
権限拒否エラーが発生した場合 次に、DBユーザーのアクセス許可を確認することをお勧めします。PgAdminからスーパーユーザーのアクセス許可をオンにしました。これで問題ありませんでした。そしてすべてが仕事に戻ります。 方法は?