我有一個SQL Alchemy的問題 - 我的應用程序作爲一個持續工作的Python應用程序。如何避免在sqlalchemy中進行緩存?
我有這樣的功能:
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保存之前獲取的數據,並且在應用程序重新啓動之前不會執行新的查詢。我怎樣才能避免這種行爲?
你如何改變數據庫中的數據?這是否改變了承諾? – icecrime
我改變它manualy。數據庫引擎是MySQL。是的,變化是承諾的。 – Archarius
http://stackoverflow.com/a/15788051/497208可能有用 –