【发布时间】:2012-08-19 23:44:24
【问题描述】:
我在使用 SQL Alchemy 时遇到问题 - 我的应用程序作为一个持续运行的 Python 应用程序运行。
我有这样的功能:
def myFunction(self, param1):
s = select([statsModel.c.STA_ID, statsModel.c.STA_DATE)])\
.select_from(statsModel)
statsResult = self.connection.execute(s).fetchall()
return {'result': statsResult, 'calculation': param1}
我认为这是一个明显的例子——一个结果集是从数据库中获取的,第二个只是作为参数传递。
问题是当我更改数据库中的数据时,此函数仍然返回数据,就像没有更改一样。当我更改输入参数中的数据时,返回的参数“计算”具有适当的值。
当我重新启动应用服务器时,情况恢复正常 - 从 MySQL 获取新数据。
我知道有几个关于 SQLAlchemy 缓存的问题,例如:
How to disable caching correctly in Sqlalchemy orm session?
How to disable SQLAlchemy caching?
但是我还能怎么称呼这种情况呢?似乎 SQLAlchemy 保留了之前获取的数据,并且在应用程序重新启动之前不会执行新查询。我怎样才能避免这种行为?
【问题讨论】:
-
您如何更改数据库中的数据?是否已提交更改?
-
我手动更改它。数据库引擎是 MySQL。是的,更改已提交。
标签: python sqlalchemy