在sqlalchemy中创建保存点的最佳方法

时间:2013-09-05 18:07:22

标签: sqlalchemy

我有一个用户创建成本模型的应用程序。 我想实现一个功能,用户可以选择“试用”模式,允许他们根据自己的意愿进行多次更改并观察成本影响。 如果试用成功,则用户应该能够提交所有更改,如果不成功,用户应该能够在进入试用模式之前回滚到该状态。

我知道我可以在会话中存储所有这些内容并只使用提交或回滚,但这是最佳做法吗?是否有更好的机制来设置和恢复dbs状态?

1 个答案:

答案 0 :(得分:2)

有保存点使用的示例。您可以在here

了解更多信息
Session = sessionmaker()
session = Session()
session.add(u1)
session.add(u2)

session.begin_nested() # establish a savepoint
session.add(u3)
session.rollback()  # rolls back u3, keeps u1 and u2

session.commit() # commits u1 and u2