django:应用程序 x 中的迁移 x 没有迁移类

Posted

技术标签:

【中文标题】django:应用程序 x 中的迁移 x 没有迁移类【英文标题】:django: migration x in app x has no Migration class 【发布时间】:2016-03-17 03:14:04 【问题描述】:

这是确切的错误

django.db.migrations.loader.BadMigrationError: Migration 0001_initial in app django_comments has no Migration class

我不知道这意味着什么,也不知道该去哪里。我用我的 venv 做了一些工作,制作了一个新的,然后我试图让一切恢复正常。安装这个那个...我忘记了我所做的一切,因为我的笔记本电脑死了,这真的让我很生气。

知道从这里到哪里去吗?

编辑:

如果我尝试升级 django_cmets,我会收到以下错误:

 Could not find a version that satisfies the requirement django-comments (from versions: 0.2a, 0.3.1a, 0.3.2a, 0.3.3a, 0.3a, 1.0.0.b, 1.0.0.b, 1.0.0.b)

正在清理... 没有与 django-cmets 版本匹配的发行版 在 /home/jeff/.pip/pip.log 中存储失败的调试日志

【问题讨论】:

您的迁移文件夹中有多少个迁移? 在哪一个中,我有很多应用程序,老实说我不知道​​ django_cmets 迁移会在哪里 名为 django_cmets 的应用 那里有两个,我没有意识到即使它们不在我的项目目录中,它们仍然被称为应用程序,我应该删除它们吗? 所以你有 0001_initial 和 0002_something?或者你也数过__init__ 【参考方案1】:

我遇到了这个问题,结果发现我不小心将一个非迁移文件复制到了我的一个迁移文件夹中。删除错误文件为我解决了这个问题。

【讨论】:

谢谢。我遇到了同样的问题,感谢您的解决方案,我解决了我的问题。 同样的问题。我之前有一个失败的壁球,留下一个空文件。【参考方案2】:

由于问题与迁移有关,您必须首先了解它是如何工作的,django 检查您的数据库架构,将其与您的模型进行比较,然后生成迁移脚本。每个迁移脚本都会执行一次,因为 django 会一直跟踪您的迁移。这是由一个名为django_migrations 的表管理的,该表是在第一次运行迁移时在您的数据库中创建的。所以我会建议两件事:

    如果您的数据库中没有数据,或者没有重要数据,那么我建议您删除它并创建一个新数据,然后再次应用所有迁移 如果您有重要数据,请尝试查看django_migrations 表并删除包含 django_cmets 迁移的行和最有可能对应的表,以便您可以再次应用迁移

【讨论】:

【参考方案3】:

您可能正在使用仅支持 Django 1.6 的旧版本 django-contrib-comments。它将在 migrations/ 文件夹中进行南迁移,而不是新的 Django 迁移。

要解决这个问题,只需升级django-contrib-comments

pip install -U django-contrib-comments

【讨论】:

【参考方案4】:

对我来说,有问题的迁移文件是空的。删除它解决了我的问题

【讨论】:

【参考方案5】:

我在迁移文件夹中有一个不属于那里的文件。通过删除放错位置的文件,我解决了这个问题。

【讨论】:

【参考方案6】: 在C:盘中找到python的根目录,然后删除python并删除pip。 删除这两个项目后,下载新的 python 并重新安装。

【讨论】:

以上是关于django:应用程序 x 中的迁移 x 没有迁移类的主要内容,如果未能解决你的问题,请参考以下文章

django 2 中的迁移错误; AttributeError:“str”对象没有属性“decode”

依赖于没有迁移的应用程序:Django 中的 %s" % key[0])

将迁移添加到源代码管理并合并 Django 中的冲突迁移

如何将 dojo (dojo 0.x) FilteringTable 迁移到 (dojo 1.6) 中的 DataGrid?

重置长时间的 Django 迁移

django迁移问题