ãããŸã§ã«ãªãããšããããŠãŸããããŸã!
次ã®ãããžã§ã¯ãã§ã¯ãå°æ¥ã®åé¡ãé¿ããããã«æåãã Liquibase ã䜿çšããããšã«ããŸããã çµå±ã®ãšãããè¥ãããŒã ã¡ã³ããŒå šå¡ããã®æ£ãã䜿ãæ¹ãç¥ã£ãŠããããã§ã¯ãããŸããã 瀟å ã¯ãŒã¯ã·ã§ãããéå¬ãããããèšäºã«ããããšã«ããŸããã
ãã®èšäºã«ã¯ã圹ç«ã€ãã³ããšããªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹ç§»è¡ããŒã«ãç¹ã« Liquibase ã䜿çšãããšãã«é¥ãããã XNUMX ã€ã®æãæçœãªèœãšãç©Žã«ã€ããŠã®èª¬æãå«ãŸããŠããŸãã åçŽããã³äžçŽã¬ãã«ã® Java éçºè åãã«èšèšãããŠãããããçµéšè±å¯ãªéçºè ã«ãšã£ãŠã¯ããããããã§ã«ç¥ãããŠããå 容ãæ§é åããŠç¹°ãè¿ãã®ã«èå³æ·±ããã®ãšãªãã§ãããã
Liquibase ãš Flyway ã¯ãJava ã®äžçã«ããããªã¬ãŒã·ã§ãã«æ§é ã®ããŒãžã§ã³ç®¡çã®åé¡ã解決ããããã®äž»èŠãªç«¶åãã¯ãããžã§ãã æåã®ãã®ã¯å®å šã«ç¡æã§ãããå®éã«äœ¿çšããããã«æãé »ç¹ã«éžæãããŸããããããLiquibase ãåºçç©ã®äž»äººå ¬ãšããŠéžã°ããçç±ã§ãã ãã ãã説æãããŠããå®è·µæ¹æ³ã®äžéšã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ã«ãã£ãŠã¯æ®éçãªãã®ã«ãªãå ŽåããããŸãã
ãªã¬ãŒã·ã§ãã«æ§é ã®ç§»è¡ã¯ããªã¬ãŒã·ã§ãã« ããŒã¿ ã¹ãã¢ã®åŒ±ãæè»æ§ã«å¯ŸåŠããããã®åŒ·å¶çãªæ¹æ³ã§ãã OOP æµè¡ã®æ代ãããŒã¿ããŒã¹ãæ±ãã¹ã¿ã€ã«ã¯ãã¹ããŒããäžåºŠèšè¿°ããã°ããã®åŸã¯è§Šããªãããšãæå³ããŠããŸããã ããããçŸå®ã«ã¯ç¶æ³ã¯åžžã«å€åããŠãããããŒãã«æ§é ã®å€æŽãé »ç¹ã«å¿ èŠã«ãªããŸãã åœç¶ã®ããšãªããããã®ããã»ã¹èªäœã¯èŠçã§äžå¿«ãªãã®ã§ããå¯èœæ§ããããŸãã
ãããžã§ã¯ãã«ã©ã€ãã©ãªãè¿œå ããããã®ãã¯ãããžãšæé ã«ã€ããŠã¯ãã以äžè©³ãã説æããŸããããã®ãããã¯ã«é¢ããŠã¯ãããªãã®æ°ã®èšäºãæžãããŠããŸãã
Liquibase ã䜿çšã㊠Spring Boot ã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ããŒã¹æ§é ã管çããŸãã ããŒã1 Liquibase ã䜿çšã㊠Spring Boot ã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ããŒã¹æ§é ã管çããŸãã ããŒã2 Liquibase ãš Maven ããŒã¿ããŒã¹å€æŽã®ããŒãžã§ã³ç®¡çãžã®ã¢ãããŒã Spring MVC/SecurityãRESTãHibernateãLiquibase ã XNUMX è¡ã§èµ·åããŸã
ããã«ã圹ç«ã€ãã³ãã«é¢ããåªããèšäºããã§ã«ãããŸããã
СПвеÑÑ
移æ°ã®åé¡ã解決ããããã«æ±ãšè¡ãšçã¿ãçµéšããŠçãŸããç§ã®ã¢ããã€ã¹ãšã³ã¡ã³ããå ±æããããšæããŸãã
1. äœæ¥ãéå§ããåã«ã次ã®ãã¹ã ãã©ã¯ãã£ã¹ã®ã»ã¯ã·ã§ã³ãããç解ããŠããå¿
èŠããããŸãã ãªã³ã©ã€ã³ ãªãããŒã¹
2. 移è¡ããŒã«ã®äœ¿çšãéå§ããå Žåã¯ãããŒã¿ããŒã¹æ§é ãæåã§ä¿®æ£ããªãã§ãã ããã
ããšããã«ããããã«ããäžåºŠãã«ã·ã«ã¯ãåžžã«ãã«ã·ã«ã§ããã ã¢ããªã±ãŒã·ã§ã³ã®ããŒã¹ã Liquibase ã«ãã£ãŠç®¡çããå§ãããšãæåã§å€æŽãå ãããšããã«ççŸããç¶æ ã«ãªããå€æŽã»ããã®ä¿¡é Œã¬ãã«ããŒãã«ãªããŸãã æœåšçãªãªã¹ã¯ãšããŠã¯ãããŒã¿ããŒã¹ã®åŸ©å ã«æ°æéãããããšããææªã®å ŽåããµãŒããŒãåæ¢ããããšãæããããŸãã ããŒã ã«ãæãªããã®ãDBA ã¢ãŒããã¯ããããå Žåã¯ã圌ãæ¡ä»¶ä»ã SQL éçºè ããã®ç¬èªã®ç解ã«åŸã£ãŠããŒã¿ããŒã¹ãç·šéããå Žåã«ã©ã®ãããªäºæ ãèµ·ããããèŸæ±åŒ·ãææ ®æ·±ã説æããŠãã ããã
3. å€æŽã»ããããã§ã«ãªããžããªã«ããã·ã¥ãããŠããå Žåã¯ãç·šéãé¿ããŠãã ããã
å¥ã®éçºè ããã«ãäœæããŠå€æŽã»ãããé©çšããåŸã§ç·šéããå Žåãã¢ããªã±ãŒã·ã§ã³ã®èµ·åæã«ãšã©ãŒãçºçãããšãã«ããã®éçºè ã¯ééããªãããªãã®ããšãèŠããŠããŠã芪åãªèšèããããŠãããã§ãããã å€æŽã»ããã®ç·šéãäœããã®åœ¢ã§éçºã«æŒããå Žåã¯ãããããã£ãã¯ã¹ã®æ»ããããåéããã©ãå¿ èŠããããŸãã åé¡ã®æ¬è³ªã¯ãLiquibase ã®äž»èŠãªã¡ã«ããºã ã§ããããã·ã¥ ãµã ã«ããå€æŽã®æ€èšŒã«ãããŸãã ãã§ã³ãžã»ãã ã³ãŒããç·šéãããšãããã·ã¥éãå€æŽãããŸãã å€æŽã»ããã®ç·šéã¯ãããŒã¿ã倱ããã«ããŒã¿ããŒã¹å šäœãæåãããããã€ã§ããå Žåã«ã®ã¿å¯èœã§ãã ãã®å ŽåãSQL ãŸã㯠XML ã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ãããšãéã«äœæ¥ã楜ã«ãªãã移è¡ãèªã¿ããããªããŸãã äŸãšããŠã¯ãã¢ããªã±ãŒã·ã§ã³ã®éå§æã«ãœãŒã¹ ããŒã¿ããŒã¹ã®ã¹ããŒããããŒã å ã§åæãããŠããç¶æ³ãæããããŸãã
4. å¯èœã§ããã°ããŒã¿ããŒã¹ã®ããã¯ã¢ãããæ€èšŒããŠãã ãã
ããã§ã¯ããã¹ãŠãæããã ãšæããŸãã çªç¶ç§»è¡ã倱æããå Žåã¯ããã¹ãŠãå ã«æ»ãããšãã§ããŸãã Liquibase ã«ã¯å€æŽãããŒã«ããã¯ããããŒã«ããããŸãããããŒã«ãã㯠ã¹ã¯ãªãããéçºè èªèº«ã«ãã£ãŠæžãããŠãããã¡ã€ã³ã®å€æŽã»ããã®ã¹ã¯ãªãããšåã確çã§åé¡ãçºçããå¯èœæ§ããããŸãã ããã¯ãã©ããªå Žåã§ãããã¯ã¢ããã䜿çšããŠå®å šã«å¯ŸåŠããããšã圹ç«ã€ããšãæå³ããŸãã
5. å¯èœã§ããã°ãéçºäžã«å®çžŸã®ããããŒã¿ããŒã¹ã®ããã¯ã¢ããã䜿çšããŸãã
ãããå¥çŽããã©ã€ãã·ãŒã«åãããããŒã¿ããŒã¹ã«å人ããŒã¿ããªããå€ªéœ 100 ååã®éãããªãå Žåã¯ãã©ã€ã ãã€ã°ã¬ãŒã·ã§ã³ ãµãŒããŒã§äœ¿çšããåã«ãéçºè ã®ãã·ã³ã§ã©ã®ããã«åäœãããã確èªããèšç®ããããšãã§ããŸãã移è¡äžã®æœåšçãªåé¡ã¯ã»ãŒ XNUMX% 解決ãããŸãã
6. ããŒã ã®ä»ã®éçºè ãšã³ãã¥ãã±ãŒã·ã§ã³ããšã
é©åã«çµç¹åãããéçºããã»ã¹ã§ã¯ãããŒã ã®å šå¡ã誰ãäœãããŠããã®ããææ¡ããŠããŸãã å®éã«ã¯ãããã¯åœãŠã¯ãŸããªãããšãå€ããããã¿ã¹ã¯ã®äžç°ãšããŠããŒã¿ããŒã¹æ§é ã®å€æŽãæºåããŠããå Žåã¯ãããã«ã€ããŠããŒã å šäœã«ããã«éç¥ããããšããå§ãããŸãã 誰ãã䞊è¡ããŠå€æŽãå ããŠããå Žåã¯ãæ éã«æŽçããå¿ èŠããããŸãã ä»äºã®å§ãã ãã§ãªããä»äºãçµãã£ãåŸã«ãååãšã³ãã¥ãã±ãŒã·ã§ã³ããšã䟡å€ããããŸãã ãã§ã³ãžã»ããã«é¢ããæœåšçãªåé¡ã®å€ãã¯ãã³ãŒã ã¬ãã¥ãŒã®æ®µéã§è§£æ±ºã§ããŸãã
7. èªåãäœãããŠããã®ãèããŠã¿ãŸãããã
ããã¯ã©ããªç¶æ³ã«ãåœãŠã¯ãŸãèªæã®ã¢ããã€ã¹ã®ããã«æããã§ãããã ããããéçºè ãèªåãäœãããŠããŠããããäœã«åœ±é¿ãäžããå¯èœæ§ãããã®ãââãããäžåºŠåæããŠããã°ãå€ãã®åé¡ã¯åé¿ã§ããã¯ãã§ãã 移è¡ã®äœæ¥ã«ã¯åžžã«ãããªã泚æãšæ£ç¢ºããå¿ èŠã§ãã
ãã©ãã
次ã«ãäžèšã®ã¢ããã€ã¹ã«åŸããªãå Žåã«é¥ãå¯èœæ§ã®ããå žåçãªçœ ãèŠãŠã¿ãŸããããå ·äœçã«ã¯äœããã¹ãã§ãããã?
ç¶æ³ 1: XNUMX 人ã®éçºè ãåæã«æ°ããå€æŽã»ãããè¿œå ããããšããŠããŸã
Vasya ãš Petya ã¯ããäºãã®ããšãç¥ããã«ããã§ã³ãžã»ãã ããŒãžã§ã³ 4 ãäœæããããšèããŠããŸãã 圌ãã¯ããŒã¿ããŒã¹æ§é ã«å€æŽãå ããç°ãªãå€æŽã»ãã ãã¡ã€ã«ã䜿çšããŠãã« ãªã¯ãšã¹ããçºè¡ããŸããã 次ã®äœçšæ©åºãææ¡ãããŠããŸãã
決ãæ¹
- ã©ãããããããååã¯å€æŽã»ãããé©çšããé åºã«ã€ããŠåæããå¿ èŠããããŸããããšãã°ãPetin ãæåã«é©çšããå¿ èŠããããŸãã
- 誰ãã 5 çªç®ã®å€æŽã»ãããèªåèªèº«ã«è¿œå ããVasya ã®å€æŽã»ãããããŒãžã§ã³ XNUMX ã§ããŒã¯ããå¿ èŠããããŸããããã¯ãCherry Pick ãŸãã¯é©åãªããŒãžã«ãã£ãŠå®è¡ã§ããŸãã
- å€æŽåŸã¯ãå®è¡ããã¢ã¯ã·ã§ã³ã®åŠ¥åœæ§ãå¿
ã確èªããå¿
èŠããããŸãã
å®éãLiquibase ã¡ã«ããºã ã§ã¯ããªããžããªå ã« 4 ã€ã®ããŒãžã§ã³ 4 å€æŽã»ãããå«ããããšãã§ããããããã¹ãŠããã®ãŸãŸã«ããŠããããšãã§ããŸãã ã€ãŸããããŒãžã§ã³ XNUMX ã«å¯ŸããŠãç°ãªãåå㧠XNUMX ã€ã®å€æŽãå ããããã ãã§ãã ãã®ã¢ãããŒãã§ã¯ãåŸã§ããŒã¿ããŒã¹ã®ããŒãžã§ã³ãããã²ãŒãããããšãéåžžã«å°é£ã«ãªããŸãã
ããã«ããªãããŒã¹ã«ã¯ãããããã¡ã®æ
é·ãšåæ§ãå€ãã®ç§å¯ãé ãããŠããŸãã ãã®ãã¡ã® 1.7 ã€ã¯ validCheckSum ããŒã§ããããã¯ããŒãžã§ã³ XNUMX ã§ç»å ŽããããŒã¿ããŒã¹ã«æ ŒçŽãããŠããå
容ã«é¢ä¿ãªããç¹å®ã®å€æŽã»ããã«æå¹ãªããã·ã¥å€ãæå®ã§ããããã«ããŸãã ããã¥ã¡ã³ããŒã·ã§ã³
ããŒã¿ããŒã¹ã«äœãä¿åãããŠãããã«é¢ä¿ãªãããã®å€æŽã»ããã«å¯ŸããŠæå¹ã§ãããšã¿ãªããããã§ãã¯ãµã ãè¿œå ããŸãã äž»ã«ãchangeSet ãå€æŽããå¿ èŠããããæ¢ã«å®è¡ãããŠããããŒã¿ããŒã¹ã§ãšã©ãŒãã¹ããŒãããããªãå Žåã«äœ¿çšãããŸã (æšå¥šãããæé ã§ã¯ãããŸãã)ã
ã¯ããã¯ãããã®æé ã¯ãå§ãã§ããŸããã ãããã匷ãå ã®éè¡åž«ãéã®è¡ãç¿åŸããããšããããŸã
ç¶æ³ 2: ããŒã¿ã«äŸåãã移è¡
ã©ã€ããµãŒããŒããã®ããŒã¿ããŒã¹ããã¯ã¢ããã䜿çšããæ©èœããªããšããŸãããã Petya ã¯ãã§ã³ãžã»ãããäœæããããŒã«ã«ã§ãã¹ãããèªåãæ£ããã£ããšç¢ºä¿¡ããŠãéçºè ã«ãã« ãªã¯ãšã¹ããéä¿¡ããŸããã 念ã®ããããããžã§ã¯ããªãŒããŒã¯ Petya ããã§ãã¯ãããã©ãããæããã«ããŠããè¿œå ããŸããã ããããéçºãµãŒããŒãžã®ãããã€ã¡ã³ãã¯å€±æããŸããã
å®éãããã¯å¯èœã§ããã誰ããããå ããããšã¯ã§ããŸããã ããã¯ãããŒãã«æ§é ãžã®å€æŽãäœããã®åœ¢ã§ããŒã¿ããŒã¹ã®ç¹å®ã®ããŒã¿ã«é¢é£ä»ããããŠããå Žåã«çºçããŸãã æããã«ãPetya ã®ããŒã¿ããŒã¹ããã¹ã ããŒã¿ã®ã¿ã§æºããããŠããå Žåããã¹ãŠã®åé¡ã±ãŒã¹ãã«ããŒã§ããªãå¯èœæ§ããããŸãã ããšãã°ãããŒãã«ãåé€ãããšãåé€ãããããŒãã«ã®ã¬ã³ãŒãã«é¢é£ããå€éšããŒã«ãã£ãŠä»ã®ããŒãã«ã®ã¬ã³ãŒããååšããããšãããããŸãã ãŸãã¯ãåã®åãå€æŽããå ŽåãããŒã¿ã® 100% ãæ°ããåã«å€æã§ããªãããšãããããŸãã
決ãæ¹
- 移è¡ãšãšãã«äžåºŠäœ¿çšãããç¹å¥ãªã¹ã¯ãªãããäœæããããŒã¿ãé©åãªåœ¢åŒã«ããŸãã ããã¯ã移è¡ã®é©çšåŸã«ããŒã¿ãæ°ããæ§é ã«è»¢éããåé¡ã解決ããäžè¬çãªæ¹æ³ã§ãããç¹æ®ãªå Žåã«ã¯ãåæ§ã®æ¹æ³ã以åã«é©çšããããšãã§ããŸãã ãã¡ãããã©ã€ã ãµãŒããŒäžã®ããŒã¿ã®ç·šéã¯å±éºã§ãããç Žå£çãªå Žåããããããããã®ãã¹ã¯åžžã«å©çšã§ããããã§ã¯ãããŸããã
- ãã XNUMX ã€ã®é£ããæ¹æ³ã¯ãæ¢åã®å€æŽã»ãããç·šéããããšã§ãã åé¡ã¯ãæ¢åã®åœ¢åŒã§ãã§ã«é©çšãããŠãããã¹ãŠã®ããŒã¿ããŒã¹ã埩å ããå¿ èŠãããããšã§ãã ããã¯ãšã³ã ããŒã å šäœãããŒã¿ããŒã¹ãæåããããŒã«ã«ã«å±éããããšãäœåãªããããå¯èœæ§ã¯ååã«ãããŸãã
- ãããŠæãæ®éçãªæ¹æ³ã¯ãããŒã¿ã«é¢ããåé¡ãéçºè
ã®ç°å¢ã«è»¢éããåãç¶æ³ãåçŸããŠãå£ããå€æŽã»ããã«æ°ããå€æŽã»ãããè¿œå ããããšã§åé¡ãåé¿ããããšã§ãã
äžè¬ã«ãããŒã¿ããŒã¹ã®æ§æãå®çšŒåãµãŒããŒã®ããŒã¿ããŒã¹ãšé¡äŒŒããŠããã»ã©ã移è¡ã«é¢ããåé¡ãæ·±å»ã«ãªãå¯èœæ§ã¯äœããªããŸãã ãããŠãã¡ãããå€æŽã»ããããªããžããªã«éä¿¡ããåã«ãäœããå£ããªããã©ãããäœåºŠãèããå¿ èŠããããŸãã
ç¶æ³ 3. Liquibase ã¯å®çšŒååŸã«äœ¿çšããå§ãã
ããŒã ãªãŒããŒã Petya ã« Liquibase ããããžã§ã¯ãã«å«ããããäŸé Œãããããããžã§ã¯ãã¯ãã§ã«éçšäžã§ãããæ¢åã®ããŒã¿ããŒã¹æ§é ãååšãããšããŸãã
ãããã£ãŠãåé¡ã¯ãæ°ãããµãŒããŒãŸãã¯éçºè ãã·ã³ã§ã¯ããããã®ããŒãã«ãæåããåäœæããå¿ èŠããããæ¢åã®ç°å¢ã¯äžè²«ããç¶æ ãç¶æããŠãæ°ããå€æŽã»ãããåãå ¥ããæºåãã§ããŠããå¿ èŠãããããšã§ãã
決ãæ¹
次ã®ãããªæ¹æ³ããããŸãã
- XNUMX ã€ç®ã®æãæçœãªæ¹æ³ã¯ãæ°ããç°å¢ãåæåãããšãã«æåã§é©çšããå¿ èŠãããå¥åã®ã¹ã¯ãªãããçšæããããšã§ãã
- XNUMX ã€ç®ã¯ãããã»ã©æ確ã§ã¯ãããŸããããå¥ã® Liquibase ã³ã³ããã¹ãå
ã« Liquibase 移è¡ãäœæãããããé©çšããŸãã Liquibase Context ã«ã€ããŠè©³ããã¯ããã¡ããã芧ãã ããã
https://www.liquibase.org/documentation/contexts.html ã äžè¬ã«ãããã¯ãã¹ããªã©ã«ããŸã䜿çšã§ããèå³æ·±ãã¡ã«ããºã ã§ãã - 2 çªç®ã®ãã¹ã¯ãããã€ãã®ã¹ãããã§æ§æãããŸãã ãŸããæ¢åã®ããŒãã«ã«å¯ŸããŠç§»è¡ãäœæããå¿
èŠããããŸãã 次ã«ããããäœããã®ç°å¢ã«é©çšããå¿
èŠãããããã®ããã·ã¥ãµã ãååŸãããŸãã 次ã®ã¹ãããã¯ã空ã§ã¯ãªããµãŒããŒäžã§ç©ºã® Liquibase ããŒãã«ãåæåããããšã§ããå€æŽã»ããã®äœ¿çšå±¥æŽãå«ãããŒãã«ã«ãããŒã¿ããŒã¹ã«ãã§ã«ååšããå€æŽãå«ããé©çšããããããªãå€æŽã»ããã«é¢ããã¬ã³ãŒããæåã§é
眮ã§ããŸãã ã ãããã£ãŠãæ¢åã®ãµãŒããŒã§ã¯å±¥æŽã®ã«ãŠã³ãããŠã³ãããŒãžã§ã³ XNUMX ããå§ãŸãããã¹ãŠã®æ°ããç°å¢ã¯åãããã«åäœããŸãã
ç¶æ³ 4. 移è¡ã倧èŠæš¡ã«ãªããå®äºããæéããªã
ãµãŒãã¹éçºã®éå§æã«ã¯ãååãšã㊠Liquibase ãå€éšäŸåé¢ä¿ãšããŠäœ¿çšããããã¹ãŠã®ç§»è¡ã¯ã¢ããªã±ãŒã·ã§ã³ã®éå§æã«åŠçãããŸãã ãã ããæéãçµã€ãšã次ã®ãããªã±ãŒã¹ã«ééããå¯èœæ§ããããŸãã
- 移è¡ã¯å€§èŠæš¡ã«ãªããå®äºãŸã§ã«é·ãæéãããããŸãã
- åæ£ç°å¢ã§ã¯ãããšãã°ãè€æ°ã®ããŒã¿ããŒã¹ ãµãŒã㌠ã€ã³ã¹ã¿ã³ã¹ãåæã«ç§»è¡ããå¿
èŠããããŸãã
ãã®å Žåã移è¡ãé©çšããæéãé·ããããšãã¢ããªã±ãŒã·ã§ã³ã®èµ·åæã«ã¿ã€ã ã¢ãŠããçºçããŸãã ããã«ã移è¡ãåã¢ããªã±ãŒã·ã§ã³ ã€ã³ã¹ã¿ã³ã¹ã«åå¥ã«é©çšãããšãç°ãªããµãŒããŒãåæããªããªãå¯èœæ§ããããŸãã
決ãæ¹
ãã®ãããªå Žåããããžã§ã¯ãã¯ãã§ã«å€§èŠæš¡ã§ãããããããæ人åãã®ãããžã§ã¯ãã§ããããLiquibase ã¯å¥åã®å€éšããŒã«ãšããŠæ©èœãå§ããŸãã å®éãLiquibase ã¯ã©ã€ãã©ãªãšã㊠jar ãã¡ã€ã«ã«ã³ã³ãã€ã«ããããããžã§ã¯ãå ã®äŸåé¢ä¿ãšããŠããŸãã¯ç¬ç«ããŠæ©èœããŸãã
ã¹ã¿ã³ãã¢ãã³ ã¢ãŒãã§ã¯ã移è¡ã®å®è£
ã CI/CD ç°å¢ã«ä»»ããããšããã·ã¹ãã 管çè
ãå°å
¥ã¹ãã·ã£ãªã¹ãã®åŒ·åãªè²¬ä»»ã«ä»»ããããšãã§ããŸãã ãããè¡ãã«ã¯ãLiquibase ã³ãã³ãã©ã€ã³ãå¿
èŠã§ãã
åºå
å®éãããŒã¿ããŒã¹ã®ç§»è¡ãè¡ãå Žåã«ã¯ãããã«å€ãã®èœãšãç©Žãååšããå¯èœæ§ãããããã®å€ãã¯åµé çãªã¢ãããŒããå¿ èŠãšããŸãã ããŒã«ãæ£ãã䜿çšããã°ããããã®èœãšãç©Žã®ã»ãšãã©ã¯åé¿ã§ããããšãç解ããããšãéèŠã§ãã å ·äœçã«ã¯ããªã¹ããããŠãããã¹ãŠã®åé¡ã«ããŸããŸãªåœ¢ã§å¯ŸåŠããå¿ èŠãããããã®äžéšã¯ç§ã®ãã¹ã«ãããã®ã§ããã ãã¡ãããããã¯ã»ãšãã©ãäžæ³šæã«ãã£ãŠçºçããŸãããå Žåã«ãã£ãŠã¯ç¯çœªè ãããŒã«ã䜿çšã§ããªãããšãåå ã§çºçããŸãã
åºæïŒ habr.com