我有一个SQLAlchemy的
Session
对象,想知道它是否被更改了。具体问题是:如果在此时我执行一个commit()
或rollback()
,对数据库的影响是否相同?原因是我想询问用户是否确认更改。但如果没有更改,我不想询问。当然,我可以自己监视所有在Session
上执行的操作,并决定是否有修改,但由于我的程序结构,这将需要一些相当复杂的更改。如果SQLAlchemy已经提供了这个机会,我很乐意利用它。谢谢大家。
session.new
、session.deleted
或session.dirty
中有内容时,事务才会被添加到transactions_with_flushes
中。此外,session.dirty
中的对象首先要使用session.is_modified
进行测试。最终的实现在我的这个项目中:https://github.com/giomasce/liturgy/blob/master/database.py#L19。它似乎可以工作,尽管我没有进行疯狂的测试。 - Giovanni Mascellani_iterate_parents
已从 SQLAlchemy 中移除。现在必须手动进行父级迭代。请参见上面的链接以查看我的实现,它似乎可以工作。 - Giovanni Mascellaniafter_
事件来实现回滚操作?能否请你用info字典方法更新你的答案? - rdrey