使用depends_on进行Alembic依赖解析

0 投票
1 回答
30 浏览
提问于 2025-04-14 17:19

我正在做一个有多个分支的项目,发现运行迁移时有点搞笑...

我有一个 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' 的顺序呢?

谢谢,Fernando

1 个回答

0

我在Alembic的讨论区得到了一个回答,是来自zzzeek的:

如果C和B'之间没有关系,那么这两个迁移的顺序是可以随意的。所以如果你的迁移有顺序要求,比如C必须在B'之后执行,就需要通过依赖关系来添加这个要求,也就是使用depends_on标签。可以查看文档中的相关部分,示例中你需要让C依赖于B'。

而提到的文档在这里

撰写回答