Mám řešení.
Musel jsem deaktivovat spouštěče na stole, abych zastavil kontrolu omezení cizího klíče.
Zakázat spouštěče
def disable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" DISABLE TRIGGER ALL;')
Povolit spouštěče
def enable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" ENABLE TRIGGER ALL;')
Důležité poznámky :
-
Podle tohoto odkazu na dokument , můžete předat seznam jako druhý argument do
execute()
metoda (např.:možná budete chtít předat název tabulky dynamicky), ale tím se automaticky uniknou proměnné a můžete skončit syntakticky chybným PostgreSQL dotazem (jeho oprava mi zabrala hodně času) -
Ujistěte se, že jste spouštěče znovu správně zapnuli
-
Pokud se vám zobrazuje chyba Oprávnění odepřeno Pak možná budete chtít zkontrolovat uživatelská oprávnění DB, právě jsem zapnul oprávnění superuživatele z PgAdmin, což bylo pro mě v pořádku. a vše zpět do práce. Jak na to?