我正在构建具有某些特定要求的自定义数据库迁移工具,并且试图重用alembic
提供的某些功能。由于该工具的某些要求,按原样使用alembic
对我来说不是可行的解决方案,所以我直接从代码中使用了Alembic API。
我使用produce_migrations
Alembic api以编程方式生成了迁移脚本。
engine = create_engine('oracle+cx_oracle://my-oracle-db-url', echo= True)
conn = engine.connect()
ctx = MigrationContext.configure(conn)
migration = produce_migrations(ctx, Base.metadata)
我可以这样输出上面生成的迁移的迁移代码:
render_python_code(migration.upgrade_ops)
我想知道的是,有没有一种方法可以直接执行上面migration
对象中的迁移指令,而无需将其呈现为代码并单独执行?