繁体   English   中英

从django.db导入模型,迁移ImportError:无法导入名称迁移

[英]from django.db import models, migrations ImportError: cannot import name migrations

所以我开始在我的Django Web服务器上遇到南方的一些问题。 每次使用此输出迁移命令失败:

from django.db import models, migrations

ImportError: cannot import name migrations 

(在此之上,错误显示无法迁移的文件的路径)

我的Django版本是1.5.1,而我的南版本是0.8.4

让我最烦恼的是模块django.db.migrations无处可寻。

有任何想法吗?

迁移是在Django 1.7中引入的; 你使用1.5。

这是一个解释这个的文档链接 如果您使用的是旧版本的Django,则South是最受欢迎的数据迁移选项。


编辑

所以Django Rest Framework导致错误。 从他们的文件:

rest_framework.authtoken应用程序包括将创建authtoken表的Django本机迁移(对于Django版本> 1.7)和South迁移(对于Django版本<1.7)。

注意:从REST Framework v2.4.0使用South和Django <1.7需要升级South v1.0 +

您必须将South升级到0.8.4以上的版本。

我认为OP没有将迁移导入到他正在编写的脚本中,其中一个由schemamigration创建的自动脚本可能导致了这个问题。

这个错误突然开始出现在我之前迁移工作的地方,我发现它与Django == 1.6.1和South == 0.8.4的版本没有关系,但我的shell对于哪个virtualenv感到困惑我在用。 我已经退出一个虚拟环境并取消激活,并使用“workon”启动另一个虚拟环境并运行模式迁移以更改字段的名称。 当我运行./manage migrate时,我收到了错误。 我退出了shell并再次启动了虚拟环境,一切都很好。

首先,您永远不会导入migrations 它不是要导入的模块,它是一个执行的命令工具。

其次,迁移是在1.7版本中引入Django的,你说你使用的是1.5,所以你将无法使用它。

在Django 1.7之前,人们曾经与South合作,因为South使您能够在数据库中进行迁移。 使用Django 1.7,你不再需要South了,因为Django中已经包含了迁移。 换句话说,South在1.7版本中包含在Django中。

看一下这个链接: https//docs.djangoproject.com/en/1.7/topics/migrations/

他们解释说他们包括迁移到Django。

实际上,South的最后一个版本是版本1.0,他们宣布他们不会发布更多版本,因为他们正在开发包含South的Django 1.7版本。 它们将支持当前版本,但不会添加更多功能。

看一下这个链接: http//south.readthedocs.org/en/latest/releasenotes/1.0.html

他们解释说,1.0是South的最后一个主要版本,因为他们正致力于Django 1.7迁移。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM