


成都java開發培訓
達內成都高升橋中心
用flayway實現springboot項目啟動自動執行sql功能:
1、在pom文件中引入依賴包:
<!--自動執行sql-->
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>5.2.4</version>
</dependency>
注意:如果引入版本過高會出現找不到某一個實體類的報錯,在6版本以上上刪除了某些實體的;
2、application.yml文件中添加配置項,如下:
spring:
flyway:
baseline-on-migrate: true #已當前數據庫為基準
out-of-order: false #是否按照順序執行 true:不按照
# 執行時標記的tag 默認為<>
baseline-description: <>
# 是否啟用flyway
enabled: true
# 檢測遷移腳本的路徑是否存在,如不存在,則拋出異常
check-location: true
# 腳本位置
locations: classpath:db/migration
# 在遷移時,是否校驗腳本,假設V1.0__初始.sql已經遷移過了,在下次啟動時會校驗該腳本是否有變更過,則拋出異常
validate-on-migrate: true
3、在resource目錄下新建db/migration文件夾,寫sql腳本
說明:1)默認存放位置是在此目錄下
2)命名規范:
a、有序執行sql文件,以V開頭,后面是版本號(注意可以上大版本也可以是小版本,比如V2和V2_1)然后是__加注釋(注意版本號后面一定是雙下劃線,在后面如果還有注釋就用單下劃線),
以V開頭的sql文件執行之后是不可以修改的,如果修改啟動則會報錯,解決方案是刪除數據庫的記錄,如下:
b、無序執行的sql文件,以R開頭,后面沒有版本號,直接加注釋,此sql文件可修改,flyway會自行判斷文件是否有改動,會執行改動的部分sql