4

我正在尝试在 python 3.7 中的 django 2.2.4 中进行迁移。首先我尝试做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 sentdex)

4

3 回答 3

3

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

  1. 删除位于 app 文件夹内的迁移文件夹
  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
于 2020-04-07T13:19:49.163 回答
2

不知何故,您的迁移实际上或伪造应用在数据库中,截断django_migrations表应该可以工作。

  1. 删除所有迁移文件:

    寻找 。-path " /migrations/.py " -not -name " init .py" -delete find . -path " /migrations/.pyc " -delete

  2. 截断表:

    截断 django_migrations

  3. makemigrations,迁移。

于 2019-08-28T19:41:49.170 回答
0
  1. 在应用程序目录中,我删除了pycachemigrations文件夹,

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

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

于 2021-10-28T04:35:23.427 回答