我正在清理一个旧项目。该项目已升级到 Django 1.8。该项目有几个根本不再需要的应用程序。我想删除这些应用程序。
问题是您无法通过迁移删除应用程序,因为其他应用程序的迁移可能依赖于它们。例如...应用程序car
可以删除,但应用中的模型user
在 car
中有一个模型的外键.如果我删除 car
app 然后我会在完整迁移运行时收到错误。 user
中的迁移取决于 car
中的迁移(创建 Car 模型的迁移)它将失败。
我可以回去编辑 user
迁移以删除 car
的所有实例,就好像它从未存在过一样。但随后我无法进行删除 car
的迁移。属性(property)在 User
,因此该列将仅保留在数据库表中(即使不再使用)。
我应该如何删除这个应用程序而不会使我的迁移中断并留下旧列?
最佳答案
在我看来你需要 squash你的迁移。这是您可以做什么的概述(仅就迁移而言):
user
依赖项的迁移在 car
. user
的迁移应用程序。 car
离开,这是完美的,否则,手动从压缩的迁移历史中删除外键。 关于django - 删除 Django 应用程序的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30264152/