Ho la soluzione.
Ho dovuto disabilitare i Trigger sul tavolo per interrompere il controllo del vincolo della chiave esterna.
Disattiva trigger
def disable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" DISABLE TRIGGER ALL;')
Abilita trigger
def enable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" ENABLE TRIGGER ALL;')
Note importanti :
-
Secondo questo link al documento , puoi passare una lista come secondo argomento a
execute()
metodo (es:potresti voler passare il nome della tabella in modo dinamico), ma questo sfuggirà automaticamente alle variabili e potresti finire per formare una query PostgreSQL sintatticamente sbagliata (che ha impiegato molto tempo per risolverlo) -
Assicurati di riattivare correttamente i trigger
-
Se ricevi un Errore di autorizzazione negata Quindi potresti voler controllare le autorizzazioni utente DB, ho appena attivato le autorizzazioni di superutente da PgAdmin, il che per me andava bene. e tutto torna a funzionare. Come si fa?