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