Alembic:如何在一个命令中为最后一个未提交的修订打印 SQL?

Alembic: How to print SQL for the last non-commited yet resivion in one command?

当我通过 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 +1alembic --upgrade sql +0,但没用。

是否可以在 SQL 中打印一条命令的最后修订版?

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

但是,由于 alembic history 的第一行包含了 head 修订版及其之前的修订版,因此可以使用 shell 管道 (POSIX):

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