Django 2.2.4 - 运行 在 makemigrations 之后迁移时“没有要应用的迁移”

Django 2.2.4 - “No migrations to apply” when run migrate after makemigrations

我正在尝试在 python 3.7 中的 django 2.2.4 中进行迁移。 首先,我尝试 make do makemigations:

python3 manage.py makemigrations

我得到:

Migrations for 'main':
  main/migrations/0001_initial.py
    - Create model TutorialCategory
    - Create model TutorialSeries
    - Create model Tutorial

但后来我尝试了第二步:

python3 manage.py migrate

我得到:

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

即使应该进行迁移。

我尝试删除我的迁移文件夹,然后重新创建它(里面有空的 __init__.py 文件),但它仍然不起作用。

(注意:我一直在关注教程:Linking models with Foreign Keys - Django Web Development with Python p.9 by senddex)

您的迁移以某种方式虚拟或伪造地应用到数据库中,截断 django_migrations table 应该有效。

  1. 删除所有迁移文件:

    找到。 -path "/migrations/.py" -not -name "init.py" -delete 寻找 。 -路径“/migrations/.pyc”-delete

  2. 截断 table:

    截断 django_migrations

  3. makemigrations,迁移。

我在 django 2.2 中遇到了同样的问题,以下对我有用...

  1. 删除驻留在应用程序文件夹中的迁移文件夹
  2. 也删除pycache文件夹
  3. 重新启动服务器[如果您的服务器已打开并且您正在使用另一个 cli]
  4. python manage.py makemigrations <app_name> zero
  5. python manage.py makemigrations <app_name> [显式 app_name 很重要]
  6. python manage.py migrate
  1. w/in 应用程序目录我删除了 pycachemigrations 文件夹,

  2. django.migrations 表中删除了所有像这样的 PostgreSQL 行

    DELETE FROM public.django_migrations
    WHERE public.django_migrations.app = 'target_app_name';
    
  3. 为要从头开始创建的表删除任何已创建的应用程序表。

我的没有迁移,因为 django_migrations table 中已经有同名的记录,所以我只是删除它然后迁移工作。