【发布时间】:2015-02-12 06:12:17
【问题描述】:
我对 SQLAlchemy 关于事务的术语感到有些困惑——似乎既有 DB 级事务又有会话级事务。
我目前的理解:Sessions(session-level transactions(db-level transactions()))
我将事务与作用域会话一起用作测试夹具的一部分。我启动一个事务,创建数据并查看测试是否通过,然后在下一次测试之前回滚事务。
这是我的代码:
connection = db.engine.connect()
transaction = connection.begin()
options = dict(bind=connection, binds={})
db.session = db.create_scoped_session(options=options)
yield db.session
transaction.rollback()
connection.close()
db.session.remove()
如您所见,目前我在创建事务后创建了一个作用域会话,但在删除会话之前回滚了事务。
问题:
- 我在这里创建的事务是会话级还是数据库级事务?
- 我应该交换这些以便在作用域会话中创建事务吗?
- 或者完全相反,在回滚事务之前删除会话?
【问题讨论】:
标签: python sqlalchemy