Pregunta

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 posible escribir código de sql incrustado en los archivos xml?

Gracias de antemano.

¿Fue útil?

Solución

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

El uso de la etiqueta sqlFile para hacer referencia al archivo por archivo almacenado también es popular o, como dijiste, puedes usar la etiqueta sql para alinear sql personalizado.

Otros consejos

He encontrado problemas al intentar usar la etiqueta sql para procedimientos almacenados, desencadenadores y funciones, pero en mi caso, estos eran problemas probables con el controlador MySQL JDBC, y no con Liquibase. La práctica que me he propuesto es usar la refactorización de sqlFile como sugiere Nathan, y luego controlar el código de SP / trigger / function en el mismo proyecto que el changelog, versionado en el sistema de código fuente junto con este. Esto le permite administrar el SP / cualquier código tal como era el código fuente real.

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

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 incrustado en el archivo xml o referenciado desde un archivo externo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top