我正在开发一个具有多个分支的项目,并且在运行迁移时发现一些有趣的事情......
我有一个
main
分支,具有以下修订:A --> B --> C
然后是一个带有
B' --> C'
的开发分支
B'
取决于 B
,C'
取决于 C
C
进行了重大更改,阻止您在它之后运行 B'
现在,我的期望是,如果我运行
alembic upgrade dev@head
,我将得到以下执行顺序:
A --> B --> B' --> C --> C'
执行按照某种“时间顺序”在主分支和开发分支之间来回跳转。
但是,我得到的是
A --> B --> C --> B' --> C'
我能做些什么来获得
A --> B --> B' --> C --> C'
吗?
谢谢,费尔南多
您可以使用多个升级命令手动控制执行顺序。首先,升级到分歧之前的迁移(在本例中为 B),然后升级到 dev 分支上的 head,最后升级到主分支上的 head:
alembic upgrade B
alembic upgrade dev@head
alembic upgrade head
这应该为您提供所需的执行顺序:A --> B --> B' --> C --> C'。