Voglio rimuovere nulla = True da un TextField attesa:sud: non può ALTER TABLE perché ha eventi di trigger
- footer=models.TextField(null=True, blank=True)
+ footer=models.TextField(blank=True, default='')
Ho creato una migrazione dello schema:
manage.py schemamigration fooapp --auto
Poiché alcune colonne piè di pagina contengono NULL ottengo questo errore se corro la migrazione:
django.db.utils.IntegrityError: column "footer" contains null values
ho aggiunto questo per la migrazione dello schema:
for sender in orm['fooapp.EmailSender'].objects.filter(footer=None):
sender.footer=''
sender.save()
Ora ho:
django.db.utils.DatabaseError: cannot ALTER TABLE "fooapp_emailsender" because it has pending trigger events
Cosa c'è di sbagliato?
Questa domanda è simile: http://stackoverflow.com/questions/28429933/django-migrations-using-runpython-to-commit-changes e ha avuto risposte che mi sono state più utili. – SpoonMeiser