Ich habe ein Problem mit SQL Alchemy - meine App funktioniert als eine ständig funktionierende Python-Anwendung.Wie vermeidet man Caching in Sqlalchemy?
Ich habe Funktion wie folgt aus:
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}
Ich denke, das klares Beispiel ist - eine Ergebnismenge aus der Datenbank geholt wird, der zweite wird nur als Argument übergeben.
Das Problem ist, dass, wenn ich Daten in meiner Datenbank ändere, diese Funktion noch Daten zurückgibt, als ob nichts geändert wurde. Wenn ich die Daten im Eingabeparameter ändere, hat der zurückgegebene Parameter "calculation" den richtigen Wert.
Wenn ich den App-Server neu starte, wird die Situation wieder normal - neue Daten werden von MySQL geholt.
Ich weiß, dass es einige Fragen über SQLAlchemy Caching wie: dieser Situation
How to disable SQLAlchemy caching?
aber wie andere kann ich anrufen
How to disable caching correctly in Sqlalchemy orm session?? Es scheint, dass SQLAlchemy die Daten, die zuvor abgerufen wurden, beibehält und keine neuen Abfragen durchführt, bis die Anwendung neu gestartet wird. Wie kann ich ein solches Verhalten vermeiden?
Wie ändern Sie die Daten in der Datenbank? Wird das geändert? – icecrime
ändere ich es manuell. Die Datenbank-Engine ist MySQL. Ja, die Änderung ist festgeschrieben. – Archarius
http://StackOverflow.com/a/15788051/497208 kann nützlich sein –