首页 > 解决方案 > Alembic:如何在一个命令中为最后一个未提交但重新生成的 SQL 打印 SQL?

问题描述

当我通过 Alembic 创建迁移时,我想检查 SQL 格式的结果。最后唯一的迁移很有趣。

alembic upgrade --sql head-- 此命令打印所有修订的 SQL

可以使用它们的标识符为特定迁移打印 SQL: alembic upgrade --sql 5fb648aeb2e7:head

但是这样做不是很方便,因为需要键入另一个命令 alembic history并找到倒数第二个修订版。

他们说有相对迁移标识符: https ://alembic.sqlalchemy.org/en/latest/tutorial.html#relative-migration-identifiers

我试过alembic --upgrade sql +1, alembic --upgrade sql +0,但它不起作用。

是否可以在 SQL 中打印一个命令中的最后一个版本?

标签: sqlalchemyalembic

解决方案


有趣的是,alembic upgrade rev:rev+1 --sql有效但alembic upgrade rev-1:rev --sql无效。

但是,由于第一行alembic history包含头版本及其先前版本,因此可以使用 shell 管道 (POSIX):

alembic upgrade --sql $(alembic history | head -1 | sed 's/ -> /:/' | cut -f1 -d' ')


推荐阅读