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 +1
、alembic --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' ')
当我通过 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 中打印一条命令的最后修订版?
有趣的是,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' ')