【发布时间】:2019-05-14 11:17:41
【问题描述】:
我正在尝试运行删除表中所有行的数据迁移(例如,MyModel)。还有另一个表指向该表 (RelatedModel)。 RelatedModel 中映射到MyModel 的字段具有on_delete=models.SET_NULL。但是,当我运行迁移时,我得到:
File "/usr/local/lib/python2.7/site-packages/django/db/backends/base/base.py", line 211, in _commit
return self.connection.commit()
IntegrityError: update or delete on table "MyModel" violates foreign key constraint "f2274d6f2be82bbff458f3e5487b1864" on table "RelatedModel"
DETAIL: Key (uuid)=(ywKMUYx7G2RoK9vqqEWZPV) is still referenced from table "RelatedModel".
我在迁移中添加了一个断点并检查了 SQL DELETE 查询。我在 shell 中以交互方式运行它们,它们在事务中工作,但是当它尝试提交迁移时,迁移仍然中断。但是我看不到哪个查询确切地导致了这个错误,所以我不知道如何调试它。有什么建议?谢谢。
PS:我使用的是 Django 1.9.13、Python 2.7、PostgreSQL 10.4。
【问题讨论】:
-
您能否发布在迁移期间运行的迁移文件 (py)。 Postgresql 中的表表达式也会有所帮助。
标签: django postgresql django-migrations