Saltar al contenido

¿Cómo cerrar una sesión de SQLAlchemy?

Solución:

Aquí hay una confusión central sobre la palabra “sesión”. No estoy seguro aquí, pero parece que puede estar confundiendo la sesión SQLAlchemy con una sesión MySQL @@, que se refiere al alcance de la primera vez que realiza una conexión a MySQL y cuando se desconecta.

Estos dos conceptos son no es el mísmo. Una sesión de SQLAlchemy generalmente representa el alcance de una o más transacciones, sobre una conexión de base de datos en particular.

Por lo tanto, la respuesta a su pregunta, literalmente formulada, es llamar session.close(), es decir, “cómo cerrar correctamente una sesión de SQLAlchemy”.

Sin embargo, el resto de su pregunta indica que le gustaría alguna funcionalidad por la cual cuando un particular Session está cerrada, le gustaría que también se cerrara la conexión DBAPI real.

Lo que esto significa básicamente es que desea deshabilitar la agrupación de conexiones. Que, como mencionan otras respuestas, es bastante fácil, use NullPool.

session.close() devolverá la conexión al grupo de conexiones de Engine y no cerrará la conexión.

engine.dispose() cerrará todas las conexiones del grupo de conexiones.

El motor no usará el grupo de conexiones si establece poolclass=NullPool. Entonces, la conexión (sesión SQLAlchemy) se cerrará directamente después session.close().

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *