Django禁止迁移图多叶子节点的原因及相关问题咨询
Django迁移图多叶子节点问题
当前问题
Django为何会拒绝在迁移图存在多个叶子节点时执行迁移?我推测其原因与SQLAlchemy文档中描述的类似:
分支的挑战在于将分支合并为一系列单一变更,以便从任一源代码树建立的数据库都能平等地升级到合并后的结果。
换句话说,若无需处理处于不同HEAD状态的多个数据库,除了迁移执行顺序未完全明确外,存在多个叶子节点还可能引发哪些问题?
我修改Django跳过该检查后执行migrate命令,未出现任何问题。但Django似乎不支持此用例,除了猴子补丁或使用分叉版Django外,无法覆盖该检查行为。
问询背景
我们正在为Django应用实现无停机迁移机制,尤其需要将长时迁移与短时迁移分开执行。这意味着我们有两组独立执行的迁移,每组都有自己的HEAD。
我们已实现自定义机制来仅运行指定类型的迁移,但当存在多个叶子节点时,migrate命令会报错:
检测到冲突的迁移;迁移图中存在多个叶子节点。请运行
python manage.py makemigrations --merge来修复。
内容的提问来源于stack exchange,提问作者saihtamtellim
相关产品推荐
相关产品推荐

