问题
django在进行数据迁移时,有时候会因为数据更新后没有和迁移记录对应,出现报错:
django.db.utils.OperationalError: (1091, "Can't DROP 'xxxxx'; check that column/key exists")
或
django.db.utils.OperationalError: (1051, "Unknown table 'xxxxx.xxxx'
等等…
数据库迁移结构对不上的最佳解决方案:
1.更改Models内容
a.对于models.py/migrations放在总目录下的:python manage.py inspectdb > <app_name>/models.py
b.对于models.py/migrations放在各app下的:将所有model.py文件中的字段,表全部对着已有数据库改一下(繁琐)。
2.删除所有 迁移记录
rm app/*/migrations/00*
3.开始生成新的迁移记录,重新对应:
python manage.py makemigrations
python manage.py migrate
4.修改models.py中要更新的内容
5.再次更新迁移:
python manage.py makemigrations
python manage.py migrate
不再报错了!