删除具有南依赖性的Django应用程序

时间:2013-03-05 17:48:14

标签: python django django-south

假设我们在项目中有两个应用:app1app2。两者都有南迁移,在这种特殊情况下,迁移app1.0002_something取决于app2.0001_initial。在你确定app2已经过时并且应该被删除之前(因为它的实用程序很久以前已被放入app3app4),一切都很好。

这就是问题所在:从app2 INSTALLED_APPS移除./manage.py migrate后,返回south.exceptions.DependsOnUnmigratedApplication: Migration 'app1:0002_something' depends on unmigrated application 'app2'

在这种情况下,我可能会“重置”app1的迁移并继续编码,但是,我不知道如何在未来完全不使用依赖项的情况下避免这种情况。所以问题是:

  1. 如何比“重置”迁移历史记录更优雅地解决这种情况?
  2. 如何防止这种情况发生,仍然可以删除过时的应用程序?

2 个答案:

答案 0 :(得分:0)

您可以在app1的迁移文件中查看以下行:

depends_on = (
    ("app2", "some_migration.py"),
)

然后将其删除

答案 1 :(得分:-3)

  1. 没有好办法。这就是我不惜一切代价避免南方依赖的原因。
  2. 不要使用依赖项。