å°ãã¿ããªããç§ã®ã¦ã¼ã¹ã±ã¼ã¹ãæºããã¦ããªãã£ãã®ã§ã調æ»çµæã ãã§ãã
ç°å¢
- Java
- 17
- org.flywaydb
- 8.5.13
- org.springframework.boot
- 2.7.7
対å¿
è¨å®ãã¡ã¤ã«ã®å¤æ´
PostgresãOracleçã
ã§å®è¡ããSQLã夿´ããããã«ãspring.flyway.locations
ã«classpath:db/migration/{vendor}
ãè¨å®ãã¾ãã
spring.flyway.locations: classpath:db/migration/{vendor}
ãã£ã¬ã¯ããªã使ãã
ãã£ã¬ã¯ããªãç¨æãã¾ãã{vender}
ã§ç½®æã§ããã®ã¯ããã¡ãã®Javaãã¡ã¤ã«ã確èªãã¦ãã ããã
ä»åã¯ãh2
, postgresql
, mysql
ãç¨æãã¾ãã
- db - migration - h2 - ãã¤ã°ã¬ã¼ã·ã§ã³SQL - postgresql - ãã¤ã°ã¬ã¼ã·ã§ã³SQL - mysql - ãã¤ã°ã¬ã¼ã·ã§ã³SQL
å¾ã¯ãèµ·åæããã¹ãæã«DatabaseDriver
åãå
ã«ç¹å®ã®ãã£ã¬ã¯ããªã®SQLãå®è¡ããã¦ãããã¨ãåããã¾ããã©ã®ãããªåä½ç¢ºèªããã¦ãããã¯ãã½ã¼ã¹ã³ã¼ãã§ç¢ºèªãã¦ãã ããã
ã½ã¼ã¹ã³ã¼ã
解決ãããã£ãã¦ã¼ã¹ã±ã¼ã¹
ãã¹ãæã¯H2
ã使ç¨ããã¢ããªã±ã¼ã·ã§ã³èµ·åæã¯Postgres
ã使ç¨ãã¦ãã¾ãã
ãã¼ã«ã«ç°å¢æ§ç¯æã«ã¯ãåä½ç¢ºèªã§ããããã«Flyway
ã§ãã¹ã¿ãã¼ã¿ã ãã§ãªãããã©ã³ã¶ã¯ã·ã§ã³ãã¼ã¿ãç»é²ãããã¨ãã¦ãã¾ããã
ãã ãè¨å®ãã¡ã¤ã«ãæ¸ãæãããããæéãèããã¨ãéã«ãããã¥ããã§ããçæ³ã¨ãã¦ã¯ã{vender}
ã®ä¸ä½ãã£ã¬ã¯ããªã¯æ±ç¨çãªSQLãæµãã¤ã¤ã{vender}
ãã£ã¬ã¯ããªã«ãã©ã³ã¶ã¯ã·ã§ã³ãã¼ã¿ãç»é²ããããã¨ãã¦ãã¾ããã
- db - migration - æ±ç¨SQL - postgresql - ãã©ã³ã¶ã¯ã·ã§ã³SQL
ãã®ããã«é
åããã¨ãããåå«ãã£ã¬ã¯ããªã®SQLã¾ã§å®è¡ãããããæ±ç¨SQLããã©ã³ã¶ã¯ã·ã§ã³SQLãå®è¡ããã¦ãã¾ãã¾ãããããã«classpath:db/migration/{vendor}
ã¨è¨å®ããã¨ãä¸ä½ãã£ã¬ã¯ããªã®æ±ç¨SQLãå®è¡ãããªããªãã¾ããã
使ããã¦ã¼ã¹ã±ã¼ã¹ãããã¨æãã¾ãããããªãéå®çã ã¨æãã®ã§ãç§ã¯ä½¿ãã¾ããã以åãç§ãæ¸ããè¨äºã®è¨å®ã§ååã§ãã
çµããã«
ãã®æ©è½èªä½ã¯Flyway
ã®å
¬å¼ã«ã¯è¼ã£ã¦ãã¾ãããSpringå´ã®DatabaseDriver
ã§å¤å¥ããã¨è¨è¼ããã¦ããã¨ãããSpringã®ã©ããã¼ã©ã¤ãã©ãªå´ã§è§£æ±ºãã¦ãã¾ãã
Flywayã®å ¬å¼ããã¥ã¡ã³ããèªãã§åå¨ãããSpringå´ã®å ¬å¼ããã¥ã¡ã³ããèªãã§ããããåå¨ãèªèãã¾ãããæãã¦ããã ããMitz Shiibaããæè¬ã§ãã
åèæ å ±
- https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto.data-initialization.migration-tool
- https://github.com/spring-projects/spring-boot/blob/v3.0.1/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java
twitter.comããã¯ã©ãã§ããï¼{vendor}https://t.co/eMW1W51poG
— Mitz Shiiba (@bufferings) 2022å¹´12æ16æ¥