Wie Sie sich mit Liquibase nicht in den FuĂź schieĂźen

Nie gewesen und wieder hier!


Beim nächsten Projekt haben wir uns von Anfang an für Liquibase entschieden, um zukünftige Probleme zu vermeiden. Wie sich herausstellte, wissen nicht alle jungen Teammitglieder, wie man es richtig benutzt. Ich hielt einen internen Workshop ab, den ich dann in einen Artikel umwandelte.


Der Artikel enthält nützliche Tipps und Beschreibungen der drei offensichtlichsten Fallen, in die Sie bei der Arbeit mit relationalen Datenbankmigrationstools, insbesondere Liquibase, geraten können. Entwickelt für Java-Entwickler der Junior- und Middle-Ebene. Für erfahrene Entwickler kann es interessant sein, das zu strukturieren und zu wiederholen, was höchstwahrscheinlich bereits bekannt ist.



Liquibase und Flyway sind die wichtigsten konkurrierenden Technologien zur Lösung der Probleme der Versionskontrolle relationaler Strukturen in der Java-Welt. Die erste ist völlig kostenlos, in der Praxis wird sie meistens zur Verwendung ausgewählt, und daher wird Liquibase als Held der Veröffentlichung ausgewählt. Einige der beschriebenen Vorgehensweisen können jedoch abhängig von der Architektur Ihrer Anwendung universell sein.


– . , . , , . , .


, :



, :




, , .


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