2011-11-08 13 views
8

Quiero modificar la configuración de sqlalchemy para generar una excepción en las advertencias.¿Cómo puedo informar a sqlalchemy que genere un error cada vez que MySQL arroje una advertencia?

Por ejemplo, cuando inserto una mayor cantidad de datos en un campo que la longitud de columna definida, mysql truncará los datos, insertará los datos truncados en el campo y emitirá una advertencia.

En lugar de la advertencia, me gustaría que sqlalchemy presente un error apropiado en nombre de mysql.

+0

Ver también: http://stackoverflow.com/questions/2102251/trapping-a-mysql-warning – tiho

Respuesta

5

Para convertir las advertencias "oh, por cierto, destruí mis datos" en errores, establezca un server mode apropiado para MySQL. Con SQLAlchemy, debe elegir ANSI, ya que probablemente no tenga que preocuparse de que sus consultas anteriores sean compatibles con roto Comportamiento específico de MySQL.

Consulte el SQLAlchemy docs para saber cómo hacerlo.


(también considerar el uso de una base de datos que es estricta por defecto Postgres viene a la mente..)

+2

Gracias Petr viktorin, 'set sql_mode =" TRADITIONAL ";' funcionó! – shahjapan

Cuestiones relacionadas