Alvaro Herrera escribió:
Jorge Romeo escribió:
El problema es que tras dar este error (tantas veces como aerogeneradores tengo), las
siguientes consultas también fallan... Ese es el verdadero problema que quiero evitar.
Por ahora tengo una solución fea que funciona, que es meter un
"conexion.commit()" en el control de la excepcion, para que cada vez que falla
de por terminado el bloque y la siguiente consulta no falle.
Cuando eso pasa es porque hay una transacción abierta. Obviamente
alguna capa de tu aplicación está abriendo una transacción. Yo creo que
es por ahí que debes investigar.
De forma predeterminada psycopg2 utiliza READ_COMMITED, abre las transacciones automáticamente y no
se cierran hasta se envía explicitamente un commit() o rollback().
Para cambiar esta forma de trabajar hay que utilizar el método set_isolation_level() que ademas de
READ_COMMITED (default) y SERIALIZABLE tiene la opción AUTOCOMMIT:
con.set_isolation_level(0)
Saludos,
--
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
PD:
Antes de imprimir este mensaje, asegúrese de que es necesario.
El medio ambiente está en nuestra mano.
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envía "unregister TuDirecciónDeCorreo" a majord...@postgresql.org)