我有一个用户创建成本模型的应用程序。 我想实现一个功能,用户可以选择“试用”模式,允许他们根据自己的意愿进行多次更改并观察成本影响。 如果试用成功,则用户应该能够提交所有更改,如果不成功,用户应该能够在进入试用模式之前回滚到该状态。
我知道我可以在会话中存储所有这些内容并只使用提交或回滚,但这是最佳做法吗?是否有更好的机制来设置和恢复dbs状态?
答案 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