我正在删除项目中的一些死代码,我有机会删除对我们自项目启动以来一直在使用的第三方应用程序的依赖。我们的一个模型在第三方应用程序中有一个模型的 ForeignKey,当我尝试在项目的新实例上应用迁移时遇到了麻烦。
示例模型:
from django.db import models
from thirdparty.models import ThirdPartyModel
class MyModel(models.Model):
fk = models.ForeignKey(ThirdPartyModel)
South 检测到正在删除MyModel.fk
,并且成功创建了迁移。应用迁移并将其回滚也可以。我现在可以删除thirdparty
并INSTALLED_APPS
提交更改(新的迁移和settings.py
)。
当我在另一台机器上克隆存储库时,问题就开始了。 ./manage.py syncdb
按预期运行并创建所有不由 South 管理的表,但./manage.py migrate myapp
在为(早期版本)创建表时失败,因为无法创建MyModel
外键(如预期的那样,因为不再存在,因此没有创建任何表)。thirdparty_thirdpartymodel
thirdparty
INSTALLED_APPS
是否有标准方法来处理删除外部依赖项?现在是重置我的迁移的合适时间吗?