Mysql
 sql >> Database >  >> RDS >> Mysql

Come disattivare la cache delle query MySQL durante l'utilizzo di SQLAlchemy?

Usa un hook di eventi subito dopo aver definito il tuo motore:

from sqlalchemy import event

def disable_query_cache(conn, record):
    conn.cursor().execute("SET SESSION query_cache_type = OFF")


# this is probably in your Pyramid setup code
engine = create_engine(...)

if DEBUGGING:
    event.listen(engine, 'connect', disable_query_cache)

Puoi farlo a livello globale aggiungendo l'hook al Pool classe stessa, ma (a) probabilmente vuoi che le impostazioni Pyramid siano comunque disponibili in modo da poter decidere se aggiungere o meno l'hook, e (b) lo stato globale non è valido :)