我有一个应用程序,今天我想为其创建一个新的迁移。当我运行时
$ alembic revision -m "__name__"
我收到消息
Only a single head is supported. The script directory has multiple heads (due branching), which must be resolved by manually editing the revision files to form a linear sequence.
Run `alembic branches` to see the divergence(s).
运行
alembic branches
什么都不给
我是新来的Alembic。这个应用程序有2个开发人员,而我们有2个git分支-master&developer(我不确定这是否与此有关)。
关于这是什么线索?
最佳答案
当两个Alembic迁移从同一个迁移分支时,会发生此问题。通常,当多个人进行模式更改时会发生这种情况。要解决此问题,您只需将迁移的down_revision
调整为最新版本的alembic history
。运行2f4682466279
向我们展示了这一点:
2f4682466279 -> f34e92e9dc54 (head), Fifth revision (on a separate branch)
2f4682466279 -> f673ac37b34a (head), Fifth revision (local)
2dc9337c3987 -> 2f4682466279, Fourth revision
0fa2aed0866a -> 2dc9337c3987, Third revision
22af4a75cf06 -> 0fa2aed0866a, Second revision
9a8942e953eb -> 22af4a75cf06, First revision
您可以看到,第五个修订版中的一个是本地制作的,其下游修订版是
down_revision
,但是制作另一个第五个修订版的人也得到了相同的下游修订版。进入一个第五修订版本文件,并更新
f34e92e9dc54
变量以引用另一个第五修订版本,如下所示:f673ac37b34a -> f34e92e9dc54 (head), Fifth revision (on a separate branch)
2f4682466279 -> f673ac37b34a, Fifth revision (local)
2dc9337c3987 -> 2f4682466279, Fourth revision
0fa2aed0866a -> 2dc9337c3987, Third revision
22af4a75cf06 -> 0fa2aed0866a, Second revision
9a8942e953eb -> 22af4a75cf06, First revision
在这种情况下,我将迁移
down_revision='f673ac37b34a'
更新为具有ojit_code。