没来过,又来了!
在下一个项目中,我们决定从一开始就使用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, . :
- - , , , .
- - 5. Cherry Pick .
- .
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, .
, , , , .
:
- — , .
- — , Liquibase , Liquibase Context, . Liquibase Context : https://www.liquibase.org/documentation/contexts.html. , , , .
- . . - environment’ -. Liquibase , « » . , 2, environments .

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