编程语言
首页 > 编程语言> > python – Django-DB-Migrations:不能ALTER TABLE,因为它有待处理的触发事件

python – Django-DB-Migrations:不能ALTER TABLE,因为它有待处理的触发事件

作者:互联网

我想从TextField中删除null = True:

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

我创建了一个模式迁移:

manage.py schemamigration fooapp --auto

由于某些页脚列包含NULL,因此如果运行迁移,则会出现此错误:

django.db.utils.IntegrityError: column “footer” contains null values

我将此添加到架构迁移中:

    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

怎么了?

解决方法:

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

标签:python,django,postgresql,django-migrations
来源: https://codeday.me/bug/20190928/1827164.html