在session.commit()
查询期间需要SQLAlchemy
以避免过时的数据(在我仅从数据库中获取/读取数据的情况下),我感到很困惑。
还有一个session.expire()选项,显然是在session.commit()
之后调用的,{前提是expire_on_commit = True,默认情况下}。
如果仅从数据库中获取数据,是否有必要单独使用session.commit()
或session.expire()
?
在我们当前的设置中,session.commit()
完成该工作。将其替换为session.expire()
可以解决问题吗?
需要花费几天的时间来测试数据是否过时。
我们不拥有数据库,因此不应该在此进行任何更改。恐怕session.commit()
可能会意外将更改推入数据库。
答案 0 :(得分:0)
会话期满后,下次您尝试访问已加载的数据时,将提示从数据库进行访存。由于您不希望对数据库进行任何更改,因此我认为没有足够的理由。
请注意,session.expire_all()是在session.commit()
之后调用的,因此,我建议将session.commit()
替换为session.expire_all()
,或在您所有实例上小心调用session.expire()
希望刷新。