问题起因
Django项目修改模型的字段时遇到问题,无意中把表删除了,然后migrate执行迁移文件的时候报出各种错误如:django.db.utils.OperationalError: (1050, “Table ‘xxx表’ already exists”)
执行python manage.py makemigrations命令后提示:
No changes detected
执行python manage.py migrate命令后报错
django.db.utils.OperationalError: (1050, “Table ‘xxx表’ already
exists”)
解决方法
1.删除该app的migrations目录下除了_init_.py之外的所有文件
2.进入数据库shell模式,删除migrations中关于这个app的同步数据库记录
执行:
python manage.py dbshell
mysql> delete from django_migrations where app=‘yourAppName’;
Query OK, 4 rows affected (0.06 sec)
重新执行生成迁移文件命令创建表即可:
python manage.py makemigrations
python manage.py migrate