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