相关疑难解决方法(0)

Django-DB-Migrations:不能ALTER TABLE,因为它有未决的触发事件

我想从TextField中删除null = True:

-    footer=models.TextField(null=True, blank=True)
+    footer=models.TextField(blank=True, default='')
Run Code Online (Sandbox Code Playgroud)

我创建了一个模式迁移:

manage.py schemamigration fooapp --auto
Run Code Online (Sandbox Code Playgroud)

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

django.db.utils.IntegrityError:列"footer"包含空值

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

    for sender in orm['fooapp.EmailSender'].objects.filter(footer=None):
        sender.footer=''
        sender.save()
Run Code Online (Sandbox Code Playgroud)

现在我得到:

django.db.utils.DatabaseError: cannot ALTER TABLE "fooapp_emailsender" because it has pending trigger events
Run Code Online (Sandbox Code Playgroud)

怎么了?

python django postgresql django-migrations

103
推荐指数
5
解决办法
4万
查看次数

标签 统计

django ×1

django-migrations ×1

postgresql ×1

python ×1