Cómo no dispararte en el pie con Liquibase

Nunca he estado, y aquí de nuevo!


En el próximo proyecto, decidimos usar Liquibase desde el principio para evitar problemas en el futuro. Al final resultó que, no todos los miembros jóvenes del equipo saben cómo usarlo correctamente. Realicé un taller interno, que luego decidí convertir en un artículo.


El artículo incluye consejos útiles y descripciones de las tres trampas más obvias en las que puede caer al trabajar con herramientas de migración de bases de datos relacionales, en particular Liquibase. Diseñado para desarrolladores de Java en el nivel Junior y Medio, para desarrolladores más experimentados puede ser interesante estructurar y repetir lo que probablemente ya se sabe.



Liquibase y Flyway son las principales tecnologías de la competencia para resolver los problemas de control de versiones de estructuras relacionales en el mundo Java. El primero es completamente gratuito, en la práctica se elige con mayor frecuencia para su uso y, por lo tanto, Liquibase se elige como el héroe de la publicación. Sin embargo, algunas de las prácticas descritas pueden ser universales, dependiendo de la arquitectura de su aplicación.


– . , . , , . , .


, :



, :




, , .


1. Liquibase


, , . , . , , . , Liquibase rollback . https://habr.com/ru/post/178665/ , rollback .


2. –


: « Persil — Persil». Liquibase — , . — , — . DBA Architect « », , , SQL Developer.


3. ,


pull , , — , . - — . - — Liquibase. -. , . SQL XML , , , . , .


4. ,


, , . , . Liquibase , , , . , .


5. ,


privacy, , — , , 100% .


6.


, . , , , . - — . , . code review.


7. , !


, , . , , . .



, , , , , -?


1.



4, . , pull request, . :



  1. - , , , .
  2. - 5. Cherry Pick .
  3. .
    Liquibase 4, . 4 . .

, Liquibase, , . validCheckSum, 1.7 - , . https://www.liquibase.org/documentation/changeset.html :


Add a checksum that is considered valid for this changeSet, regardless of what is stored in the database. Used primarily when you need to change a changeSet and don't want errors thrown on databases on which it has already run (not a recommended procedure)

-, .


2. ,



, . , pull request . , , . .


, . , - . , , . , , Foreign Key, . , 100% .



  • , . , - , . , , , .
  • — . , , , . , - .
  • — environment , , .

, , , . , , , , -.


3. Liquibase


, Liquibase, .


, , , , .



:



4.


, , Liquibase , . :


  • .
  • , , .
    . , , .


, , Liquibase . , Liquibase jar , , .


CI/CD \ . Liquibase https://www.liquibase.org/documentation/command_line.html. , .



, . , , . , . , , , – .


All Articles