如何不使用Liquibase射脚

没来过,又来了!


在下一个项目中,我们决定从一开始就使用Liquibase以避免将来出现问题。事实证明,并非所有年轻团队成员都知道如何正确使用它。我举办了一个内部研讨会,然后决定转为一篇文章。


本文包含有用的技巧和说明,其中涉及使用关系数据库迁移工具(尤其是Liquibase)时可能会遇到的三个最明显的陷阱。专为初级和中级的Java开发人员设计,对于更有经验的开发人员,构造和重复最有可能已知的内容可能会很有趣。



Liquibase和Flyway是解决Java世界中关系结构的版本控制问题的主要竞争技术。第一个是完全免费的,实际上,它是最常使用的,因此Liquibase被选为该出版物的英雄。但是,根据应用程序的体系结构,所描述的某些实践可能是通用的。


– . , . , , . , .


, :



, :




, , .


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