Missing migration files报错,是否需删库或对gigs应用执行migrate回滚?
Missing migration files 报错解决步骤
不需要直接删除整个数据库,可根据你是否需要保留现有数据选择对应方案:
无需保留数据(本地开发/测试环境适用)
- 删除gigs应用migrations目录下除
__init__.py外的所有文件 - 若使用SQLite,直接删除项目根目录的
db.sqlite3文件;若使用MySQL/PostgreSQL等数据库,删除对应库后重建空库 - 执行重新生成迁移命令:
python manage.py makemigrations - 执行迁移生效命令:
python manage.py migrate
需要保留现有数据
- 首先查看gigs应用已执行的迁移记录:
python manage.py showmigrations gigs - 找到缺失迁移文件对应的上一个成功执行的版本号,假设上一个版本为0002,执行回滚操作:
python manage.py migrate gigs 0002 - 回滚完成后,删除gigs应用migrations目录下所有已丢失源文件的迁移相关文件,重新生成gigs应用的迁移:
python manage.py makemigrations gigs - 执行迁移生效即可:
python manage.py migrate gigs
特殊情况处理:如果回滚时提示迁移文件不存在,可先手动在gigs的migrations目录下创建和缺失文件名完全一致的空迁移文件,完成回滚后再删除即可。
内容的提问来源于stack exchange,提问作者Liah Cheston
相关产品推荐
相关产品推荐

