¿Puede Flyway o Liquibase generar un script de actualización en lugar de actualizar la base de datos directamente?

Primero, un poco de historia. Tengo un conjunto de aplicaciones Java, algunas basadas en JPA, otras no. Para crear mis bases de datos, actualmente estoy usando la exportación de esquemas de Hibernates para generar scripts para aquellos que usan JPA. Aquellos que no usan JPA genero los scripts a mano. Estos se ejecutan durante la instalación de la aplicación utilizando ANT. Para las actualizaciones, el instalador de la aplicación simplemente aplica los scripts de actualización a la base de datos.

Para mejorar la administración de las actualizaciones de la base de datos, he estado buscando en Flyway y Liquibase. Ambos parecen casi hacer lo que quiero (aparte: prefiero Flyway en este momento debido a todos los scripts SQL / DDL preexistentes que tenemos). El problema que puedo ver es que ambos actualizan la base de datos directamente. Esto está bien para muchas instalaciones pero no todas.

Lo que me gustaría hacer es ejecutar Flyway / Liquibase contra la base de datos y generar un script de actualización que incorpore todas las actualizaciones necesarias para actualizar la base de datos, incluidos los cambios que Flyway / Liquibase debe realizar en sus propias tablas. Esto me permitiría (o, lo que es más importante, un administrador de base de datos) ejecutar el script de actualización fuera de las aplicaciones para actualizar la base de datos. Luego podría usar Flyway / Liquibase dentro de mi aplicación únicamente para verificar que la base de datos está actualizada.

¿Es posible hacer esto con Flyway o Liquibase o cualquier otra herramienta?

Respuestas a la pregunta(5)

Su respuesta a la pregunta