python - Alembic API 如何获取原始 SQL 脚本

标签 python sqlalchemy alembic

我的要求是生成一个 SQL 脚本并将该脚本上传到云存储。我正在使用 Alembic Command 生成 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)

我知道可以使用clialembic升级头--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')

关于python - Alembic API 如何获取原始 SQL 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66989330/

相关文章:

python - 在 alembic 中配置 env.py 文件时使用 .env 变量

python - Django 扩展 model.User

Python:PerformanceWarning:将对象数据类型数组添加/减去未矢量化的 TimedeltaArray

Python 在 for 循环中全局导入(最好是 Python 3.x)

python - 为什么 Google App Engine NDB 在 ndb.Model 的 @classmethod 内部时返回 StringProperty(...) 作为属性值?

python - 使用 Alembic 更改枚举字段

python - SQLAlchemy 删除所有项目,而不仅仅是第一个

python - WTForms:我似乎无法动态地为 QuerySelectField 提供默认值

python - 具有继承的 SQLAlchemy 类的一对一删除

python - Flask迁移自动改变数据库