El diferenciador clave entre un archivo de creación de esquema autogestionado y Liquibase (u otras herramientas de migración de esquema ) es que este último proporciona un registro de cambios de esquema. Este es un registro de los cambios de esquema a lo largo del tiempo. Permite que el diseñador de la base de datos especifique cambios en el esquema y habilita la actualización o degradación programática del esquema a pedido.
Existen otros beneficios, como:
- Independencia del proveedor de la base de datos (esto es cuestionable, pero lo intentan)
- documentación automatizada
- diferencias de esquema de base de datos
Una herramienta alternativa es el corredor migratorio .
Puede optar por utilizar una herramienta de migración de esquemas cuando desee o necesite administrar automáticamente las actualizaciones de esquemas sin perder datos. Es decir, espera que el esquema cambie después de que su sistema se haya implementado en un entorno de larga duración, como un sitio de cliente o un entorno de prueba estable.
He visto a liquibase crear disciplina entre los desarrolladores cuando se trata de modificar el esquema. Simplemente no puede ir y sobrescribir el cambio y ejecutar de otro desarrollador. En su lugar, crea su propio conjunto de cambios y lo agrega al final de la secuencia de cambios que se ejecutarán. Esto también aporta claridad sobre qué cambio se produjo, cuándo y quién lo introdujo.
Un enfoque muy "versionado" para el mantenimiento de esquemas.
Para empezar, da una impresión de "trabajo innecesario".
fuente
Cuando tiene varias instancias de base de datos en dev, qa, producción y desea tener una herramienta para rastrear automáticamente el historial de cambios y aplicar los cambios de manera inteligente (aplique la diferencia del esquema actual y el esquema final), herramientas como liquibase o flyway serán muy útiles .
fuente
Creo que Liquibase es genial cuando su filosofía es que la base de datos es una ocurrencia tardía. Esta filosofía ha provocado la mayoría de bases de datos defectuosas en producción, y la mayoría de ellas son malas. Una base de datos debe diseñarse con una vista completa de todo el sistema empresarial, no construida por los desarrolladores de aplicaciones, cada uno trabajando en sus propios silos. El último método da como resultado soluciones temporales, datos desnormalizados, relaciones deficientes entre tablas, duplicación de áreas comerciales y un sistema general desordenado y de alto costo de mantenimiento que el cliente odiará poco después de la implementación debido a los problemas que causa. Si una base de datos está diseñada para reflejar EXACTAMENTE las relaciones comerciales, su vida útil será 5 veces más larga y cumplirá su propósito 5 veces mejor que una diseñada de manera fragmentada, como desafortunadamente la mayoría.
Liquibase no es un problema en sí mismo, pero permite la práctica de que los desarrolladores de aplicaciones diseñen la base de datos. Ese es el problema.
fuente
Creo que por qué liquibase se puede responder si revisa el siguiente artículo http://shengwangi.blogspot.com/2016/04/liquibase-helloworld-example.html
Si lo lee con atención, la capacidad de degradar a una versión inferior desde una versión superior con la ayuda de comandos simples mvn o CLI es muy útil, lo que no obtiene si sigue el enfoque de confirmar su archivo sql en GIT porque entonces tiene que ejecutar manualmente esos scripts y tampoco tiene el cambio configurado como: - quién hizo el autor de los cambios, etc.
fuente
Siendo DevOps Persona de mi equipo, preferiría tener todos mis archivos SQL en un solo lugar, es decir, en mi SCM (Gestión de código fuente)
También durante la fase de CI / CD, si el esquema de base de datos se crea junto con él, ahorra mucho tiempo y recursos. No es necesario que otra persona administre su base de datos para ese cliente.
ORM como Flyway, Liquibase, EF, etc. ayuda a lograr esto.
fuente