Como não se dar um tiro no pé usando Liquibase

Nunca esteve, e aqui de novo!


No próximo projeto, decidimos usar o Liquibase desde o início para evitar problemas no futuro. Como se viu, nem todos os jovens membros da equipe sabem como usá-lo corretamente. Realizei um workshop interno, que depois decidi transformar em artigo.


O artigo inclui dicas e descrições úteis das três armadilhas mais óbvias nas quais você pode se deparar ao trabalhar com ferramentas de migração de banco de dados relacional, em particular o Liquibase. Projetado para desenvolvedores Java dos níveis Júnior e Médio, para desenvolvedores mais experientes, pode ser interessante estruturar e repetir o que provavelmente já é conhecido.



Liquibase e Flyway são as principais tecnologias concorrentes para solucionar os problemas de controle de versão de estruturas relacionais no mundo Java. O primeiro é totalmente gratuito; na prática, é mais frequentemente escolhido para uso; portanto, foi o Liquibase que foi escolhido como o herói da publicação. No entanto, algumas das práticas descritas podem ser universais, dependendo da arquitetura do seu aplicativo.


– . , . , , . , .


, :



, :




, , .


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