【问题标题】:south migration error app "is not available in this migration"南迁移错误应用程序“在此迁移中不可用”
【发布时间】:2009-06-09 15:05:23
【问题描述】:

本题与上一题基本相同 here.

但是,那里的答案对我不起作用。我已经安装了 south 的主干版本,在相关迁移文件中手动输入导入行,并在单独的目录中完成了完整的“startmigration”并检查了 0001_initial.py 文件。

我有一个 Django 项目,其中包含多个应用程序,其中一个(名为“核心”)被其他应用程序引用。南迁移正在尝试创建一个新表,其中的列具有核心模型的外键。

我目前正在有问题的迁移 (0006) 中导入核心,我什至将它添加到迁移 0001,尽管这似乎并不重要。

在我做一些激烈的事情之前,比如删除该字段、运行迁移和手动添加字段,是否有已知的手动解决方法来解决这个南方问题?

【问题讨论】:

  • 好吧,我最终是手动完成的。我最近不得不添加一个新模型,我遇到了同样的问题。那么,有什么解决办法吗?还是我改用 Django Evolution,还是干脆放弃使用 SQL?

标签: django migration


【解决方案1】:

您可能没有像这样使用--freeze 选项:

python manage.py startmigration <appname> migrate_core --freeze core

【讨论】:

    【解决方案2】:

    像这样创建了迁移:

    ./manage.py startmygration appname --model NewModel

    出现此错误: “来自应用‘核心’的模型‘程序’在此迁移中不可用。”

    像这样重新创建迁移可以修复它:

    ./managepy startmigration appname --model NewModel --freeze core.Program

    仅仅做“--freeze core”对我来说没有用。

    【讨论】:

      【解决方案3】:

      您可以通过尝试访问驻留在另一个 django 应用程序中的类来收到此错误。检查以确保您尝试访问的类在 models 字典中。

      【讨论】:

        猜你喜欢
        • 2013-12-09
        • 1970-01-01
        • 2015-03-07
        • 1970-01-01
        • 2012-09-08
        • 1970-01-01
        • 1970-01-01
        • 2010-10-27
        • 2011-07-31
        相关资源
        最近更新 更多