python alter 表名_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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值