【发布时间】:2015-12-22 06:57:15
【问题描述】:
我有一个相当标准的 Flask-SQLAlchemy 设置连接到 PostgreSQL 9.4 数据库。
出于测试目的,我想在数据库事务范围内调用db.create_all(),运行我的测试,然后调用db.drop_all()--all 而不提交该数据库事务。这是可能的,因为 PostgreSQL 在事务中包装了 DDL。
但是,每当我调用db.create_all() 或db.drop_all() 时,Flask-SQLAlchemy 在创建每个 单独的表后都会发出COMMIT。同样,它会在删除每个表后发出COMMIT。
我有 COMMIT_ON_TEARDOWN = True,但 AFAIK 这应该只对最终提交很重要——它不应该导致在每个表之后发生中间提交。
如何更改此行为,以便在不自动触发数据库提交的情况下创建或删除表?
【问题讨论】:
标签: sqlalchemy flask-sqlalchemy