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}
これは明確な例だと思います.1つの結果セットはデータベースから取得され、2番目は引数として渡されます.
問題は、データベースのデータを変更しても、この関数は何も変更されていないようなデータを返すことです。入力パラメーターのデータを変更すると、返されるパラメーター「計算」に適切な値が含まれています。
アプリ サーバーを再起動すると、状況が正常に戻ります。MySQL から新しいデータがフェッチされます。
SQLAlchemy キャッシングについて次のような質問がいくつかあったことを私は知っています。
Sqlalchemy orm セッションでキャッシュを正しく無効にする方法は?
しかし、この状況を他にどのように呼ぶことができますか? SQLAlchemy は以前に取得したデータを保持し、アプリケーションを再起動するまで新しいクエリを実行しないようです。どうすればそのような行動を避けることができますか?