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

django: migration x in app x has no Migration class

这里是准确的错误

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

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

知道从这里到哪里去吗?

编辑:

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

 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-comments 版本匹配的发行版 在 /home/jeff/.pip/pip.log

中存储故障调试日志

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

要解决此问题,只需升级 django-contrib-comments:

pip install -U django-contrib-comments

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

  1. 如果您的数据库中没有数据,或者没有重要数据,那么我建议删除它并创建一个新的,然后再次应用所有迁移
  2. 如果您有重要数据,请尝试查看 django_migrations table 并删除包含 django_comments 迁移的行,很可能是相应的 table,这样您可以再次应用迁移

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

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

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

  • 在C盘找到python的根目录,然后删除python,同时删除pip。
  • 删除这两项后,下载新的 python 并重新安装。

我已经通过符号链接在自定义应用程序和 Django 应用程序之间共享了我的 Django ORM DB 模型:ln -s