ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ»ΠΎ, ΠΈ Π²ΠΎΡ ΠΎΠΏΡΡΡ!
ΠΠ° ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Liquibase Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. ΠΠ°ΠΊ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, Π½Π΅ Π²ΡΠ΅ ΠΌΠΎΠ»ΠΎΠ΄ΡΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΌΠ΅ΡΡ Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π― ΠΏΡΠΎΠ²ΡΠ» Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ Π²ΠΎΡΠΊΡΠΎΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠΈΠ» ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π² ΡΡΠ°ΡΡΡ.
Π‘ΡΠ°ΡΡΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠΎΠ²Π΅ΡΡ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ΅Ρ ΡΠ°ΠΌΡΡ ΡΠ²Π½ΡΡ Π»ΠΎΠ²ΡΡΠ΅ΠΊ, Π² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°ΡΡΡ, ΡΠ°Π±ΠΎΡΠ°Ρ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ , Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Liquibase. Π Π°ΡΡΡΠΈΡΠ°Π½Π° Π½Π° Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠΎΠ²Π½Ρ Junior ΠΈ Middle, Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° Π΄Π»Ρ ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ.
Liquibase ΠΈ Flyway β ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ ΡΡΡΡΠΊΡΡΡ Π² ΠΌΠΈΡΠ΅ Java. ΠΠ΅ΡΠ²Π°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ, Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠ°ΡΠ΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Liquibase Π²ΡΠ±ΡΠ°Π½ Π³Π΅ΡΠΎΠ΅ΠΌ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΈΠ³ΡΠ°ΡΠΈΠΈ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ ΡΡΡΡΠΊΡΡΡ β ΡΡΠΎ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Π½ΠΎ ΠΏΠΎΡΠ²ΠΈΠ²ΡΠΈΠΉΡΡ ΡΠΏΠΎΡΠΎΠ± Π±ΠΎΡΡΠ±Ρ ΡΠΎ ΡΠ»Π°Π±ΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ Π΄Π°Π½Π½ΡΡ . Π ΡΠΏΠΎΡ Ρ ΠΌΠΎΠ΄Ρ Π½Π° ΠΠΠ ΡΡΠΈΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΠ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π», ΡΡΠΎ ΠΌΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΎΠΏΠΈΡΠ΅ΠΌ ΡΡ Π΅ΠΌΡ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΎΠ³Π°ΡΡ. ΠΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΡ Π²ΡΠ΅Π³Π΄Π° ΡΠ°ΠΊΠΎΠ²Π°, ΡΡΠΎ Π²ΡΡ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠ°Π±Π»ΠΈΡ ΡΡΠ΅Π±ΡΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°ΡΡΠΎ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ Π±ΡΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΡΠΉ ΠΈ Π½Π΅ΠΏΡΠΈΡΡΠ½ΡΠΉ.
ΠΠ΅ Π±ΡΠ΄Ρ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ Π±ΡΠ»ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠ°ΡΠ΅ΠΉ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Liquibase Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΠ Π² Spring Boot ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π§Π°ΡΡΡ 1 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Liquibase Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΠ Π² Spring Boot ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π§Π°ΡΡΡ 2 Liquibase ΠΈ Maven ΠΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΠ Spring MVC/Security, REST, Hibernate, Liquibase Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π² Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΆΠ΅ Π±ΡΠ»Π° ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ Π½Π° ΡΠ΅ΠΌΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠΎΠ²Π΅ΡΠΎΠ²:
Π‘ΠΎΠ²Π΅ΡΡ
Π₯ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΠΎΠ²Π΅ΡΠ°ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄ΠΈΠ»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡ, ΠΊΡΠΎΠ²Ρ ΠΈ Π±ΠΎΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠ΅ΠΉ.
1. ΠΠ΅ΡΠ΅Π΄ ΡΠ°Π±ΠΎΡΠΎΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ°Π·Π΄Π΅Π»ΠΎΠΌ Π»ΡΡΡΠΈΡ
ΠΏΡΠ°ΠΊΡΠΈΠΊ Π½Π° ΡΠ°ΠΉΡΠ΅ Liquibase
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 ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ Π²Π°Π»ΠΈΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ
Π΅Ρ-ΡΡΠΌΠΌΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π½Π΄ΠΆΡΠ΅ΡΠ° Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
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
ΠΡΠ²ΠΎΠ΄
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π»ΠΎΠ²ΡΡΠ΅ΠΊ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΠΌΠΈ ΠΠ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΡΡΠ΅Π±ΡΡΡ ΡΠ²ΠΎΡΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°. ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· ΡΡΠΈΡ Π»ΠΎΠ²ΡΡΠ΅ΠΊ ΡΠ΄Π°ΡΡΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΌΠ½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π² ΡΠ°Π·Π½ΡΡ Π²ΠΈΠ΄Π°Ρ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΌΠΎΠΈΡ ΠΊΠΎΡΡΠΊΠΎΠ². Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎ Π½Π΅Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° β ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΏΡΠ΅ΡΡΡΠΏΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠΌΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com