with tutorial transaction sql plsql liquibase

sql - tutorial - Un par de preguntas de un licibase novato



liquibase sql transaction (3)

Estoy evaluando liquibase para un proyecto que comienza hoy.

¿Alguien lo ha usado para crear procedimientos, funciones, básicamente todas las cosas de plsql?

Si no es así, ¿es posible escribir código sql incrustado en los archivos xml?

Gracias por adelantado.


Si bien no he usado liquibase para procedimientos almacenados, tengo cierta experiencia con Liquibase para operaciones más genéricas.

Es posible escribir sql personalizado, ya sea integrado en el archivo xml o referenciado desde un archivo externo.


He tenido problemas para probar el uso de la etiqueta sql para procedimientos almacenados, desencadenadores y funciones, pero en mi caso, estos problemas eran provablemente con el controlador JDBC de MySQL, y no con el propio Liquibase. La práctica en la que me he establecido es utilizar la refactorización de sqlFile como lo sugiere Nathan, luego controlar el SP / disparador / código de función en el mismo proyecto que el registro de cambios, versionado en el sistema de código fuente junto con él. Esto le permite administrar el código SP / lo que sea como si fuera un código fuente real.

Establecer runOnChange = "true" en changeSet que contiene la refactorización de sqlFile es esencial. Es este interruptor (gracias, Nathan) que permite el control de fuente real del código de la base de datos de procedimientos.


Hay una etiqueta createProcedure incorporada en liquibase para los procedimientos de gestión. El mejor enfoque suele ser combinar las etiquetas o con runOnChange para que liquibase actualice su procedimiento cuando y solo cuando actualiza la definición. De esta forma, puede hacer diffs entre sus archivos xml de registro de cambios a lo largo del tiempo y ver cómo ha cambiado el procedimiento.

Usar la etiqueta sqlFile para referenciar el archivo por stored-proc también es popular, o, como dijiste, puedes usar la etiqueta sql para incorporar sql personalizado.