Estoy usando SQLAlchemy y me gustaría registrar ejecutado código SQL (es decir, el código con todos los parámetros de enlace ya citados y reemplazados). En el caso de psycopg2 fue posible utilizando el atributo query
del objeto Cursor
(ver psycopg documentation). En el caso de MySQLdb es posible usar el atributo _last_executed
del objeto Cursor
.Cómo recuperar el código SQL ejecutado desde SQLAlchemy
Mi pregunta es: ¿Cómo puedo recuperar la cadena de consulta recién ejecutada utilizando las interfaces SQLAlchemy? ¿Proporciona esa funcionalidad o debería escribir mi propia función auxiliar?
Gracias de antemano por cualquier ayuda.
Es cierto, pero (a) esto también puede enviar mensajes a la salida estándar, (b) se puede establecer un efecto similar simplemente estableciendo el atributo 'echo' de un motor específico en True, y (c) el registro de SQLA no muestra la consulta con marcadores de posición reemplazados, aunque registra el SQL paramétrico y los parámetros por separado. –
@Vinay Esos son buenos puntos, he actualizado mi respuesta para ilustrar cómo usar el registro de Python para registrar específicamente en un archivo, y mostrar un ejemplo de salida de registro – zeekay
Eso es genial, y usted ya tenía mi voto popular :-) –