Asegúrese de que el valor de 'pool_recycle option' sea menor que el valor de wait_timeout de MYSQL cuando use la función 'create_engine' de SQLAlchemy.
engine = create_engine("mysql://username:[email protected]/myDatabase", pool_recycle=3600)
Intenta usar scoped_session
para hacer tu sesión:
from sqlalchemy.orm import scoped_session, sessionmaker
session = scoped_session(sessionmaker(autocommit=False, autoflush=False, bind=engine))
y cierre/elimine su sesión después de recuperar sus datos.
session.query(Foo).all()
session.close()