springboot配置flyway(入門(mén)級(jí)別教程)
1、Flyway的工作原理
Flyway在第一次執(zhí)行時(shí),會(huì)創(chuàng)建一個(gè)默認(rèn)名為flyway_schema_history的歷史記錄表,這張表會(huì)用來(lái)跟蹤或記錄數(shù)據(jù)庫(kù)的狀態(tài),然后每次項(xiàng)目啟動(dòng)時(shí)都會(huì)自動(dòng)掃描在resources/db/migration下的文件的版本號(hào)并且通過(guò)查詢(xún)flyway_schema_history來(lái)判斷是否有新增文件,從而判斷是否進(jìn)行遷移。默認(rèn)的查找 migration 的路徑為 classpath:db/migration ,對(duì)應(yīng) SQL 文件可放置在src/main/resources/db/migration 下,Java 類(lèi)可放置在 src/main/java/db/migration 下。
2、sql腳本命名規(guī)則
- 僅需要執(zhí)行一次的,以大寫(xiě)“V”開(kāi)頭,V+版本后(版本號(hào)間的數(shù)字以“.” 或者“ _ ”分隔開(kāi),“ _ ”會(huì)自動(dòng)編譯成 “ . ” )+" __"+文件描述+后綴名;
- 需要執(zhí)行多次的,以大寫(xiě)“R”開(kāi)頭,命名如R__clean.sql ,R的腳本只要改變了就會(huì)執(zhí)行,R不帶版本號(hào);
- V開(kāi)頭的比R開(kāi)頭的優(yōu)先級(jí)要高。
前綴:用于版本控制(可配置)、撤消(可配置)和可重復(fù)遷移(可配置)VUR)
版本:帶有點(diǎn)或下劃線(xiàn)的版本可根據(jù)需要分隔任意數(shù)量的部分(不適用于可重復(fù)的遷移)
分隔符:(兩個(gè)下劃線(xiàn))(可配置)__)
說(shuō)明:下劃線(xiàn)或空格分隔單詞
后綴:(可配置.sql)
(可選)版本控制 SQL 遷移還可以省略分隔符和說(shuō)明
3、引入maven依賴(lài)
<!-- flyaway工具 --> <dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> <version>5.2.4</version> </dependency
4、添加yml配置項(xiàng)(不做專(zhuān)門(mén)配置說(shuō)明的配置項(xiàng)按照默認(rèn)值)
flyway.baseline-description對(duì)執(zhí)行遷移時(shí)基準(zhǔn)版本的描述. flyway.baseline-on-migrate當(dāng)遷移時(shí)發(fā)現(xiàn)目標(biāo)schema非空,而且?guī)в袥](méi)有元數(shù)據(jù)的表時(shí),是否自動(dòng)執(zhí) 行基準(zhǔn)遷移,默認(rèn)false. flyway.baseline-version開(kāi)始執(zhí)行基準(zhǔn)遷移時(shí)對(duì)現(xiàn)有的schema的版本打標(biāo)簽,默認(rèn)值為1. flyway.check-location檢查遷移腳本的位置是否存在,默認(rèn)false. flyway.clean-on-validation-error當(dāng)發(fā)現(xiàn)校驗(yàn)錯(cuò)誤時(shí)是否自動(dòng)調(diào)用clean,默認(rèn)false. flyway.enabled是否開(kāi)啟flywary,默認(rèn)true. flyway.encoding設(shè)置遷移時(shí)的編碼,默認(rèn)UTF-8. flyway.ignore-failed-future-migration當(dāng)讀取元數(shù)據(jù)表時(shí)是否忽略錯(cuò)誤的遷移,默認(rèn)false. flyway.init-sqls當(dāng)初始化好連接時(shí)要執(zhí)行的SQL. flyway.locations遷移腳本的位置,默認(rèn)db/migration. flyway.out-of-order是否允許無(wú)序的遷移,默認(rèn)false. flyway.password目標(biāo)數(shù)據(jù)庫(kù)的密碼. flyway.placeholder-prefix設(shè)置每個(gè)placeholder的前綴,默認(rèn)${. flyway.placeholder-replacementplaceholders是否要被替換,默認(rèn)true. flyway.placeholder-suffix設(shè)置每個(gè)placeholder的后綴,默認(rèn)}. flyway.placeholders.[placeholder name]設(shè)置placeholder的value flyway.schemas設(shè)定需要flywary遷移的schema,大小寫(xiě)敏感,默認(rèn)為連接默認(rèn)的schema. flyway.sql-migration-prefix遷移文件的前綴,默認(rèn)為V. flyway.sql-migration-separator遷移腳本的文件名分隔符,默認(rèn)__ flyway.sql-migration-suffix遷移腳本的后綴,默認(rèn)為.sql flyway.tableflyway使用的元數(shù)據(jù)表名,默認(rèn)為schema_version flyway.target遷移時(shí)使用的目標(biāo)版本,默認(rèn)為latest version flyway.url遷移時(shí)使用的JDBC URL,如果沒(méi)有指定的話(huà),將使用配置的主數(shù)據(jù)源 flyway.user遷移數(shù)據(jù)庫(kù)的用戶(hù)名 flyway.validate-on-migrate遷移時(shí)是否校驗(yàn),默認(rèn)為true.
我的項(xiàng)目中只做了這些配置:
5、然后運(yùn)行就可以看到數(shù)據(jù)庫(kù)中多了一個(gè)flyway_schema_history表,會(huì)記錄執(zhí)行情況。
到此這篇關(guān)于springboot配置flyway(入門(mén)級(jí)別教程)的文章就介紹到這了,更多相關(guān)springboot配置flyway內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot整合Flyway的方法(數(shù)據(jù)庫(kù)版本遷移工具)
- Flyway詳解及Springboot集成Flyway的詳細(xì)教程
- SpringBoot整合flyway實(shí)現(xiàn)步驟解析
- SpringBoot使用flyway初始化數(shù)據(jù)庫(kù)
- SpringBoot整合flyway實(shí)現(xiàn)自動(dòng)創(chuàng)建表的方法
- SpringBoot項(xiàng)目集成Flyway詳細(xì)過(guò)程
- SpringBoot使用Flyway進(jìn)行數(shù)據(jù)庫(kù)管理的操作方法
- SpringBoot使用Flyway進(jìn)行數(shù)據(jù)庫(kù)遷移的實(shí)現(xiàn)示例
- spring boot整合flyway實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)維護(hù)的示例代碼
相關(guān)文章
Spring-AOP @AspectJ切點(diǎn)函數(shù)之@annotation()用法
這篇文章主要介紹了Spring-AOP @AspectJ切點(diǎn)函數(shù)之@annotation()用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07最新SpringCloud?Stream消息驅(qū)動(dòng)講解
SpringCloud Stream 是一個(gè)構(gòu)建消息驅(qū)動(dòng)微服務(wù)的框架,通過(guò) SpringCloud Stream 連接消息中間件,以實(shí)現(xiàn)消息事件驅(qū)動(dòng),這篇文章主要介紹了SpringCloud?Stream消息驅(qū)動(dòng),需要的朋友可以參考下2022-11-11解決SpringBoot在后臺(tái)接收前臺(tái)傳遞對(duì)象方式的問(wèn)題
這篇文章主要介紹了解決SpringBoot在后臺(tái)接收前臺(tái)傳遞對(duì)象方式的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01