update transaction property from existing create database liquibase

database - transaction - ¿Por qué y cuándo Liquibase?



liquibase sql transaction (6)

Creo que Liquibase es excelente cuando su filosofía es que la base de datos es una ocurrencia tardía. Esta filosofía ha causado la mayoría de las bases de datos malas 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 en partes por desarrolladores de aplicaciones que trabajen en sus propios silos. El último método da como resultado soluciones alternativas, datos desnormalizados, relaciones deficientes entre tablas, duplicación de áreas de negocios 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 mayor y cumplirá su propósito 5 veces mejor que una diseñada de manera fragmentaria, como lamentablemente 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.

Intenté buscar esta pregunta en el desbordamiento de la pila, pero no pude encontrar ninguna pregunta para esto. Soy nuevo en liquibase y quiero saber por qué liquibase? ¿Y cuándo exactamente se debe usar liquibase en el proyecto?

Sé que esto es para mantener todos los cambios en la base de datos en un solo lugar, pero se puede hacer lo mismo creando un simple archivo sql en algún sistema de repositorio y actualizándolo con el tiempo.


Creo que por qué se puede responder a liquibase si lee el siguiente artículo http://shengwangi.blogspot.com/2016/04/liquibase-helloworld-example.html

Si lo lee detenidamente, la capacidad de bajar a una versión inferior de una versión superior con la ayuda de simples comandos mvn o CLI es muy útil, lo que no obtendrá si sigue el enfoque de comprometer su archivo sql en GIT porque entonces usted tiene que ejecutar manualmente esos scripts y tampoco tiene el conjunto de cambios como: - quién hizo el autor de los cambios, etc.


Cuando tiene varias instancias de base de datos en dev, qa, production y desea tener una herramienta para realizar un seguimiento automático del historial de cambios y aplicar los cambios de manera inteligente (aplicar la diferencia del esquema actual y el esquema final), herramientas como liquibase o flyway serán muy útiles .


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 al diseñador de la base de datos especificar cambios en el esquema y permite la actualización programática o la degradación del esquema a pedido.

Hay 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 flyway .

Elegiría usar 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 del 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 la ejecución de otro desarrollador. En su lugar, crea su propio conjunto de cambios, agréguelo 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 produjo.

Un enfoque muy "versionado" para mantener el esquema.

Para empezar, da una impresión de "trabajo innecesario".


Siendo DevOps persona de mi equipo, preferiría tener todos mis archivos SQL en un solo lugar, es decir, en mi SCM (gestión del 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 tendría que tener a otra persona administrando su base de datos para ese cliente.

ORM como Flyway, Liquibase, EF, etc. ayuda a lograr esto.