南向迁移错误应用程序“在此迁移中不可用”

7
这个问题基本上与之前的问题在这里是一样的。然而,那里的答案对我不起作用。我已经安装了south的trunk版本,在相关的迁移文件中手动输入了导入行,并在一个单独的目录中完成了完整的“startmigration”并检查了0001_initial.py文件。
我有一个Django项目,其中包含几个应用程序,其中一个(名为“core”)被其他应用程序引用。south迁移正在尝试创建一个新表,该表具有指向core模型的外键列。
我目前正在导入迁移中的core(0006),并将其添加到迁移0001中,尽管似乎这并不重要。
在采取激烈措施之前,例如删除该字段、运行迁移并手动添加该字段,是否有已知的手动解决此south问题的方法?

好吧,最后我还是手动完成了。最近我不得不添加一个新模型,但我遇到了同样的问题。那么,有什么解决方案吗?或者我应该转向Django Evolution,还是放弃使用SQL? - ShawnMilo
3个回答

11

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

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

2

创建迁移如下:

./manage.py startmygration appname --model NewModel

会出现以下错误:

"程序包'core'中的模型'program'在此迁移中不可用。"

按照以下方式重新创建迁移即可解决问题:

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

仅使用"--freeze core"无法解决问题。


1
您可能会遇到这个错误,原因是尝试访问另一个Django应用程序中的类。请检查您尝试访问的类是否在“models”字典中。保留HTML标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接