miércoles, 13 de febrero de 2013

Db2 Drop column en odbc resulta en operacion cancelada

Acabo de encontrar que no es posible borrar una columna en db2 por odbc, esta operación en el 400 demanda una confirmación, la columna se puede borrar por pantalla verde o por iSeriesNavegator luego de darle ignorar al mensaje. Pero en odbc es imposible (Hasta donde he encontrado) responder al mensaje de confirmación que dice que puede haber perdida de datos.

La respuesta del error no dice mucho solo
SQLSTATE[HY008]: Operation canceled: 30071 [IBM][Controlador ODBC de System i Access]Operación cancelada.
La única opción que he encontrado es configurar la base de datos para que no solicite la confirmación de borrado de la columna mediante el comando de pantalla verde :

CHGMSGD MSGID(CPA32B2) MSGF(QSYS/QCPFMSG) DFT('I')
 Este cambio aplica para todas las bases de datos y usuarios de la maquina iSeries donde se ejecute. Esto puede ser valido para un entorno de desarrollo, aqui podremos dejar que symfony cambie el modelo todo lo que quiera, pero en los servidores de producción no podemos hacer los mismo, lo mas seguro es que el dba ejecute las instrucciones SQL una por una en el entorno de producción caso de ser necesario algún cambio.