Django 迁移文件报错django.db.migrations.exceptions.InconsistentMigrationHistory;OperationalError 1050

Django项目在把Git上项目拉到本地后,运行完 python manage.py makemigrations后,再运行python manage.py migrate,出现报错:
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency authentication.0001_initial on database 'default'.
解决办法:
  1. 删除数据库中名为django_migrations表
  2. 删除app下migrations下生成的001_initial.py等文件,只保留__init__.py文件
  3. 重新运行python manage.py makemigrations后,再运行python manage.py migrate
 
但是后面,又出现另外的报错:
django.db.utils.OperationalError: (1050, "Table 'django_content_type' already exists")
解决办法:
  1. 删除数据库中名为django_migrations表
  2. 删除app下migrations下生成的001_initial.py等文件,只保留__init__.py文件
  3. 重新运行python manage.py makemigrations
  4. 运行python manage.py migrate --fake
重点就是那个 --fake
你可以理解为,使django忽略表已存在,继续执行迁移文件,类似ignore。
 
 
posted @ 2022-11-26 11:52  danvy617  阅读(752)  评论(0编辑  收藏  举报