sqlalchemy - 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 中打印一个命令中的最后一个版本?
解决方案
有趣的是,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' ')
推荐阅读
- sql - 如何从 SQL 查询中的 CREATE/UPDATE/INSERT 语句中提取表名?
- python - 如何根据登录用户更改 odoo 布尔字段值?
- sql - 在 MS SQL 中按具有重复值的多列进行分区
- amazon-web-services - Lambda@Edge 通过 Go SDK
- c - 使用 C 在 Windows 中被动监控串行端口
- javascript - 如何使用带有javascript的按钮平滑地左右滚动?
- powershell - Powershell-根据索引匹配拆分和替换
- javascript - 无法在 mongodb shell 中进行 http-post
- ios - 检查用户名是否唯一抛出错误:void 函数中的意外非 void 返回类型
- javascript - 如何使用javascript检查输入是否包含特殊字符