如何移除Django项目中内容相同的重复迁移文件
解决Django迁移文件重复的问题
当你在Django项目里修改模型后,偶尔会生成功能重复的迁移文件(比如0002_remove_whocanapprove_approver_level_and_more和0004_remove_whocanapprove_approver_level_and_more,都是移除相同字段的操作),处理方法如下:
- 先备份整个
migrations目录,防止操作出错搞砸数据。 - 直接删除第一个重复的迁移文件(比如上面例子里的0002开头的那个)。
- 登录数据库,找到
django_migrations表,删掉对应已执行的迁移记录:
执行SQL命令:DELETE FROM django_migrations WHERE app='你的应用名称' AND name='0002_remove_whocanapprove_approver_level_and_more'; - 最后运行
python manage.py migrate --fake,让Django同步当前迁移状态和数据库,避免后续执行迁移时出问题。
这种重复迁移一般是多次修改模型、回滚迁移后重新生成导致的,清理完之后记得后续修改模型时尽量一次性确认需求,减少不必要的中间迁移。
内容的提问来源于stack exchange,提问作者saranya
相关产品推荐
相关产品推荐

