如何删除类似的 alembic 版本?

tri*_*nag 5 python sqlalchemy flask flask-sqlalchemy alembic

当我尝试做

alembic upgrade head
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ERROR [alembic.util.messaging] Online migration expected to match one row when updating '3aae6532b560' to 'a1d8dae7cc' in 'alembic_version'; 2 found
FAILED: Online migration expected to match one row when updating '3aae6532b560'
to 'a1d8dae7cc' in 'alembic_version'; 2 found
Run Code Online (Sandbox Code Playgroud)

alembic current

给出了两个相似版本的 alembic,如:

3aae6532b560
3aae6532b560
Run Code Online (Sandbox Code Playgroud)

如何删除 alembic 的相似版本之一,即复制版本?

alembic 历史记录没有显示任何混乱的输出。

谢谢!

小智 8

Alembic 版本存储在您的数据库中的 alembic_version 表中。我看到你在表中有两个相同的行。

你可以这样做:

DELETE FROM alembic_version WHERE version_num='3aae6532b560';
INSERT INTO alembic_version VALUES ('3aae6532b560');
Run Code Online (Sandbox Code Playgroud)

上述查询可以通过限制删除行的数量在一个查询中完成,但在 DELETE 查询中的限制在不同的数据库引擎之间是不同的。