Python 在没有中间提交的情况下执行alembic操作
我试图以编程方式(不编写迁移)使用alembic在数据库上执行一些DDL操作Python 在没有中间提交的情况下执行alembic操作,python,database,sqlalchemy,alembic,Python,Database,Sqlalchemy,Alembic,我试图以编程方式(不编写迁移)使用alembic在数据库上执行一些DDL操作 import sqlalchemy import alembic context = alembic.migration.MigrationContext.configure(sqlalchemy.create_engine("postgres://user:@localhost/database")) context.connection.echo = True with alembic.op.Operations.
import sqlalchemy
import alembic
context = alembic.migration.MigrationContext.configure(sqlalchemy.create_engine("postgres://user:@localhost/database"))
context.connection.echo = True
with alembic.op.Operations.context(context) as op:
op.rename_table("table", "old_table")
op.rename_table("new_table", "table")
基本上,我想一次换一张新的桌子来代替桌子。然而,当我查看日志时,我看到alembic在第一个rename\u table
语句之后提交
2015-07-09 16:51:02,590 INFO sqlalchemy.engine.base.Engine ALTER TABLE table RENAME TO old_table
2015-07-09 16:51:02,590 INFO sqlalchemy.engine.base.Engine {}
2015-07-09 16:51:02,591 INFO sqlalchemy.engine.base.Engine COMMIT
2015-07-09 16:51:02,598 INFO sqlalchemy.engine.base.Engine ALTER TABLE new_table RENAME TO table
2015-07-09 16:51:02,598 INFO sqlalchemy.engine.base.Engine {}
2015-07-09 16:51:02,599 INFO sqlalchemy.engine.base.Engine COMMIT
我如何告诉alembic仅在执行了这两个命令后才提交?只是在尝试一个疯狂的想法:
也许您可以使用
--sql
标志运行alembic,获取sql命令,使用类似grep-iv commit的东西过滤提交,然后添加最后一次提交,只是尝试一个疯狂的想法:
也许您可以使用--sql
标志运行alembic,获取sql命令,使用类似grep-iv commit的内容过滤提交,然后添加最后一次提交