我正在为一个旧项目做一些清理工作。该项目已升级为Django 1.8。该项目有几个不再需要的应用程序。我想删除这些应用。
问题是您无法删除迁移的应用,因为其他应用的迁移可能依赖于它们。例如,可以移除应用car
,但应用user
中的模型具有car
中模型的外键。如果我删除car
应用,那么在完整迁移运行时我会收到错误。 user
中的迁移取决于car
中的迁移(创建Car模型的迁移),它将失败。
我可以返回并编辑user
迁移,以删除car
的所有实例,就好像它从未存在过一样。但是我无法进行迁移,删除car
上的User
属性,因此该列将保留在数据库表中(即使它已不再使用)。
如果不加入迁移并留下旧列,我该如何删除此应用?
答案 0 :(得分:3)
听起来我需要squash您的迁移。以下是您可以做的事情的概述(仅就迁移而言):
user
对car
的依赖关系。user
app。car
,那就完美了,否则,手动从压缩的迁移历史记录中删除外键。