如何在 SQL Alchemy 中自动管理交易
how to automate manage transactions in SQL Alchemy
当使用java Hibernate & Spring框架时,有一个事务管理器,我们可以配置一些事务规则,这样我们就不需要每次都写"commit, flush, rollback"东西了。
对于python SQL Alchemy,我们可以使用装饰器和上下文管理器来管理事务(来自doc的官方示例):
from contextlib import contextmanager
@contextmanager
def session_scope():
"""Provide a transactional scope around a series of operations."""
session = Session()
try:
yield session
session.commit()
except:
session.rollback()
raise
finally:
session.close()
def run_my_program():
with session_scope() as session:
ThingOne().go(session)
ThingTwo().go(session)
transactions library也是一个不错的选择。
当使用java Hibernate & Spring框架时,有一个事务管理器,我们可以配置一些事务规则,这样我们就不需要每次都写"commit, flush, rollback"东西了。
对于python SQL Alchemy,我们可以使用装饰器和上下文管理器来管理事务(来自doc的官方示例):
from contextlib import contextmanager
@contextmanager
def session_scope():
"""Provide a transactional scope around a series of operations."""
session = Session()
try:
yield session
session.commit()
except:
session.rollback()
raise
finally:
session.close()
def run_my_program():
with session_scope() as session:
ThingOne().go(session)
ThingTwo().go(session)
transactions library也是一个不错的选择。