【问题标题】:Django: no migrations apply, but I have unapplied migrationsDjango:没有迁移适用,但我有未应用的迁移
【发布时间】:2020-10-14 04:24:12
【问题描述】:

我删除了我的数据库并尝试创建一个新数据库。 我做到了:

  1. python manage.py makemigrations
  2. python manage.py migrate

然后我运行python manage.py runserver 它返回了

You have 2 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): social_django.
Run 'python manage.py migrate' to apply them.

然后我运行python manage.py migrate,它返回了

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions, social_django
Running migrations:
  No migrations to apply.

我正在使用 django 3.0.7 和 social-auth-app-django 4.0.0

【问题讨论】:

    标签: python django social-auth-app-django


    【解决方案1】:

    在命令提示符下运行以下命令:

    1.python manage.py migrate
    2.python manage.py runserver
    

    【讨论】:

      【解决方案2】:

      解决方案是禁用环境。

      我不知道为什么。

      【讨论】:

      • 这是什么意思
      【解决方案3】:

      您可以通过使用用于执行迁移的任何程序查看数据库来检查已完成哪些迁移。并检查 django_migrations 表。

      需要应用的迁移仍将位于尚未更新的应用的迁移文件夹中。 要迁移它们,假设它们仍在 settings.py 中的 installed_apps 中,只需从迁移文件夹中删除迁移(可能是 __init__.py)并重新运行:

      > python manage.py makemigrations
      > python manage.py migrate
      

      【讨论】:

      • 现在 django 不打印 `You have 2 unapplied migration(s)',但模型仍然无法正常工作。
      • 好的,那么您必须进入 django_migrations 表,并删除缺少的应用程序的行。即删除 0001_initial 和任何后续迁移(如果存在)。然后 Django 将能够识别出它们丢失了。
      • 现在 python manage.py migrate 失败,model_state = state.models[app_label, self.name_lower] KeyError: ('social_django', 'association')
      • 这听起来像是一个重构问题。您可能必须恢复该应用程序的 0001 初始迁移文件,并将更改的名称更改为原始名称并再次运行 makemigrations。
      • 我返回修改后的文件,返回第一个错误(You have 2 unapplied migration(s).)
      猜你喜欢
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 2018-03-07
      • 2019-06-23
      • 2020-03-08
      • 2017-06-24
      • 1970-01-01
      • 2018-10-24
      相关资源
      最近更新 更多