Alembic API 如何获取原始 SQL 脚本

Alembic API how to get raw SQL script

我的要求是生成一个 SQL 脚本并将该脚本上传到云存储。我正在使用 Alembic 命令生成 SQL 脚本。

command.upgrade(alembic_cfg, revision='a:b', sql=True)

command.upgrade 函数将 SQL 脚本打印到控制台。如果有多个修订,那么会有多个 INFO 日志。

有什么方法可以将原始 SQL 脚本存储到变量中吗?

raw_sql = command.upgrade(alembic_cfg, revision='a:b', sql=True)
upload_script(raw_sql)

我知道可以使用cli alembic upgrade head --sql > migration.sql

似乎 API 无法实现此目的。最后,我已经解决了 CLI 命令。

upgrade = subprocess.run(['alembic', 'upgrade', upgrade_revision_range, '--sql'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
raw_sql = upgrade.stdout.decode('utf-8')