【问题标题】:Django: cannot import name migrationsDjango:无法导入名称迁移
【发布时间】:2017-01-12 11:26:20
【问题描述】:

我刚刚发布了一个问题 here。我看到了一个类似问题的答案,它说卸载和安装 requirements.txt 会有所帮助,因为问题的根源是一个糟糕的依赖链。

所以我就这么做了,当然,现在我遇到了一个新问题。

运行迁移时,我收到以下错误:

  File "C:\Python27\lib\site-packages\genericm2m\migrations\0001_initial.py", line 5, in <module>
    from django.db import migrations, models
ImportError: cannot import name migrations

根据另一个答案,这是因为我正在使用迁移模块,我的 Django 版本(1.4)还不支持。

django-generic-m2m 模块(版本 0.3.1)似乎正在使用迁移。我不明白为什么现在会出现这个问题,因为我一直使用相同的 requirements.txt 文件,而且我从来没有遇到过这个问题。

我曾经在使用迁移时遇到过类似的依赖问题,而我的 Django 无法处理它们。但是这些部门也有一个south_migrations 文件夹,所以只需将其重命名为migrations 并去掉实际的migrations 文件夹就可以了。但是,我在generic2m2 安装目录中没有看到任何south_migrations 目录。

以前有人遇到过这个问题吗?

【问题讨论】:

  • 你为什么使用 1.4,它已经有好几年了,完全不受支持?
  • 因为不由我来选择。

标签: python django django-1.4


【解决方案1】:

该应用程序没有南迁移,据我所知,它从未有过。它可能曾经依赖 'syncdb' 来创建数据库表。

较新的 Django 没有 syncdb,因此添加了创建表的迁移。

如果您习惯于重命名 migrations 目录,那么您可能只需删除 migrations/ 目录,但您确实应该升级到受支持的版本。

此外,您将 south_migrations 重命名为 migrations 的旧修复方法不是预期用途:如果您使用 Django-South 1.0(django-south 的最后一个版本),它将检测到 south_migrations 目录何时存在并使用它而不是迁移目录。

所以您还应该将 South 更新为 1.0,然后添加一个空的 south_migrations/ 目录也可以工作(我不知道)。

【讨论】:

  • 是的,我删除了迁移文件夹并做到了。
猜你喜欢
  • 2014-10-28
  • 2011-07-11
  • 2015-02-19
  • 1970-01-01
  • 2015-03-01
  • 2011-12-27
  • 2018-05-29
  • 2014-11-06
  • 1970-01-01
相关资源
最近更新 更多