我想从 TextField 中删除 null=True:

-    footer=models.TextField(null=True, blank=True)
+    footer=models.TextField(blank=True, default='')

我创建了一个架构迁移:
manage.py schemamigration fooapp --auto

由于某些页脚列包含 NULL,如果我运行迁移,我会得到这个 error:



我将此添加到架构迁移中:
    for sender in orm['fooapp.EmailSender'].objects.filter(footer=None):
        sender.footer=''
        sender.save()

现在我得到:
django.db.utils.DatabaseError: cannot ALTER TABLE "fooapp_emailsender" because it has pending trigger events

怎么了?

最佳答案

另一个原因可能是因为您尝试将列设置为 NOT NULL,而实际上它已经具有 NULL 值。

关于python - Django-DB-Migrations : cannot ALTER TABLE because it has pending trigger events,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12838111/

10-15 18:44