Django-South DataMigration - 应用程序在 forwards() 中可用,但在 backs() 中不可用?

Posted

技术标签:

【中文标题】Django-South DataMigration - 应用程序在 forwards() 中可用,但在 backs() 中不可用?【英文标题】:Django-South DataMigration - App available in forwards() but not backwards()? 【发布时间】:2012-03-21 04:03:23 【问题描述】:

我正在编写依赖于另一个应用程序中的模型的 django 南迁移,所以我在运行 python manage.py datamigration … 时包含了 --freeze OTHERAPPNAME

但是在forwards() 函数中,我可以很好地访问另一个模型(使用orm['otherappname.MyModelName']),但是在backwards() 步骤中(这也取决于其他应用程序名称中的模型),如果我尝试访问orm['otherappname.MyModelName'] , 我得到一个错误

*** KeyError: "The model 'mymodelname' from the app 'otherappname' is not available in this migration."

我可以在文件底部看到冻结模型的详细信息。为什么我无法访问它?

注意:此模型是在此数据迁移所依赖的 otherappname 内的另一个迁移中创建的。

【问题讨论】:

【参考方案1】:

向后迁移实际上使用了 previous 迁移的冻结 ORM。仔细想想是合乎逻辑的,但不可否认它不是很直观。

道德:将数据迁移所需的模型冻结在进行它的架构迁移中。

【讨论】:

以上是关于Django-South DataMigration - 应用程序在 forwards() 中可用,但在 backs() 中不可用?的主要内容,如果未能解决你的问题,请参考以下文章

Django-South DataMigration - 应用程序在 forwards() 中可用,但在 backs() 中不可用?

在 MySQL 中重命名外键列

在 MySQL 中重命名外键列

“迁移 Django 应用程序”是啥意思?

无法安装 django-activity-stream 数据库表

将Django模型从一个应用程序移动到另一个[重复]