Bagaimana tidak menembak diri sendiri di kaki menggunakan Liquibase

Belum pernah, dan di sini lagi!


Pada proyek berikutnya, kami memutuskan untuk menggunakan Liquibase dari awal untuk menghindari masalah di masa depan. Ternyata, tidak semua anggota tim muda tahu cara menggunakannya dengan benar. Saya mengadakan lokakarya internal, yang kemudian saya putuskan untuk berubah menjadi sebuah artikel.


Artikel ini berisi tip dan deskripsi yang berguna dari tiga perangkap paling jelas yang bisa Anda tangkap ketika bekerja dengan alat migrasi database relasional, khususnya Liquibase. Dirancang untuk pengembang Java di tingkat SMP dan Menengah, untuk pengembang yang lebih berpengalaman mungkin menarik untuk menyusun dan mengulangi apa yang kemungkinan besar sudah diketahui.



Liquibase dan Flyway adalah teknologi pesaing utama untuk menyelesaikan masalah kontrol versi struktur relasional di dunia Jawa. Yang pertama benar-benar gratis, dalam praktiknya paling sering dipilih untuk digunakan, dan karena itu Liquibase dipilih sebagai pahlawan publikasi. Namun, beberapa praktik yang dijelaskan mungkin bersifat universal, tergantung pada arsitektur aplikasi Anda.


– . , . , , . , .


, :



, :




, , .


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