You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django恢复测试服务器备份后出现InconsistentMigrationHistory迁移错误

问题根因

报错触发的核心逻辑是:rmas.0001_initial迁移文件的依赖声明中包含equipment.0002_auto_20210629_1540,但当前数据库的django_migrations表中,rmas.0001_initial已经被标记为已执行,依赖的equipment.0002_auto_20210629_1540反而处于未执行状态,违反了Django的迁移历史一致性校验规则。

解决方案

无业务数据保留需求场景

如果当前环境无需保留现有数据,按顺序执行以下操作:

  1. 删除现有数据库,重新创建空白的PostgreSQL库
  2. 优先执行被依赖应用的迁移:
python manage.py migrate equipment
python manage.py migrate inspections
python manage.py migrate repairs
  1. 执行全量迁移完成操作:
python manage.py migrate

需保留业务数据场景(导入测试服备份场景适用)

如果是导入测试服务器的备份数据、需要保留现有业务数据,按以下步骤操作:

  1. 手动标记测试服已执行过、当前环境未标记的迁移为已执行状态:
python manage.py migrate --fake equipment 0002_auto_20210629_1540
python manage.py migrate --fake inspections 0002_auto_20210629_1540
python manage.py migrate --fake repairs 0002_auto_20210629_1540
  1. 执行剩余迁移即可:
python manage.py migrate

后续优化建议

  • 检查rmas.0001_initial迁移文件的dependencies配置项,确认对equipment.0002的依赖声明正确,避免后续新环境部署再次触发顺序问题
  • Django 1.11的迁移执行顺序和INSTALLED_APPS的注册顺序完全一致,可将equipment、inspections、repairs等被依赖应用调整到rmas之前注册,降低后续迁移冲突概率

内容的提问来源于stack exchange,提问作者epritchard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 15:15:03