亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

SpringBoot整合Flyway的方法(數(shù)據(jù)庫版本遷移工具)

瀏覽:3日期:2023-05-14 13:00:38

Flyway是什么

Flyway是一款開源的數(shù)據(jù)庫版本管理工具,F(xiàn)lyway可以獨(dú)立于應(yīng)用實(shí)現(xiàn)管理并跟蹤數(shù)據(jù)庫的變更,F(xiàn)lyway根據(jù)自己的約定,不需要復(fù)雜的配置就可以實(shí)現(xiàn)數(shù)據(jù)的Migrate。Migrations可以寫成SQL腳本,也可以寫在Java代碼中,F(xiàn)lyway還支持Spring Boot。

簡介

在團(tuán)隊(duì)開發(fā)當(dāng)中,有可能每個(gè)人都是使用自己本地的數(shù)據(jù)庫。當(dāng)數(shù)據(jù)庫的表或者字段更新時(shí),往往需要告知團(tuán)隊(duì)的其他同事進(jìn)行更新。Flyway數(shù)據(jù)庫版本遷移工具,目的就是解決該問題而誕生的(我自己想的)。每當(dāng)我們更新數(shù)據(jù)庫的時(shí)候,只需要添加SQL文件到指定目錄中。Flyway會在數(shù)據(jù)庫創(chuàng)建一個(gè)表,專門記錄已更新的SQL文件。當(dāng)我們下次執(zhí)行時(shí)則不會執(zhí)行已記錄并且執(zhí)行成功的SQL文件。

整合

maven

現(xiàn)在的Flyway的最新版本已經(jīng)到了6.4.2。我用的是6.3.3。

<!-- https://mvnrepository.com/artifact/org.flywaydb/flyway-core --><dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> <version>6.3.3</version></dependency>

application配置

搞定了Flyway的依賴后,修改一下SpringBoot的application.yml或application.xml配置。

spring: flyway: url: jdbc:mysql://192.168.138.132:3306/hotel-server?useUnicode=true&characterEncoding=UTF-8 user: johnson password: 123456 table: flyway_schema_history enabled: true locations: classpath:db/migration clean-disabled: false

flyway配置詳解

url:連接數(shù)據(jù)庫的Url 默認(rèn)為spring.datasource.url

user:連接數(shù)據(jù)庫的賬號 默認(rèn)為spring.datasource.username

password:連接數(shù)據(jù)庫的密碼 默認(rèn)為spring.datasource.password

table:自定義數(shù)據(jù)庫版本管理表 默認(rèn)為 flyway_schema_history

enabled:是否開啟 默認(rèn)為開啟

locations:SQL文件存放路徑 默認(rèn) classpath:db/migration

SQL文件

上面的locations參數(shù)配置的SQL文件存放路徑為 classpath:db/migration,classpath對應(yīng)的目錄就是resources目錄,創(chuàng)建后的目錄如下圖:

SpringBoot整合Flyway的方法(數(shù)據(jù)庫版本遷移工具)

SQL文件如上圖,SQL文件名必須為V1.0.x__xxx.sql(注意:這里的下劃線為兩個(gè)_,我也是掉坑了才知道),這樣可以對應(yīng)SQL更新的版本號。啟動(dòng)了SpringBoot項(xiàng)目后,就會自動(dòng)幫你執(zhí)行SQL文件,可以看到數(shù)據(jù)庫版本控制表中生成的數(shù)據(jù):

SpringBoot整合Flyway的方法(數(shù)據(jù)庫版本遷移工具)

clean操作

Flyway的clean操作:徹底清除已配置的架構(gòu),它將有效地為您提供一個(gè)全新的起點(diǎn)。所有對象(表,視圖,過程等)都將被刪除。

spring: flyway: clean-on-validation-error: true clean-disabled: false

clean-on-validation-error:發(fā)生驗(yàn)證的錯(cuò)誤時(shí)是否執(zhí)行clean操作(如SQL執(zhí)行失敗),默認(rèn)false,生產(chǎn)中必須使用false。clean-disabled:是否禁用clean操作,默認(rèn)false,生產(chǎn)中必須使用true

如果我們設(shè)置 clean-on-validation-error = true,clean-disabled = false。當(dāng)我們的SQL文件執(zhí)行失敗,在數(shù)據(jù)庫版本控制表flyway_schema_history會添加一條失敗的記錄,success字段為0,此時(shí)并不會執(zhí)行clean操作。當(dāng)把SQL文件修改正確并執(zhí)行完后,此時(shí)flyway_schema_history會把失敗記錄的success字段由0改為1。并且會執(zhí)行clean操作!!!!!整個(gè)數(shù)據(jù)庫的表里面的數(shù)據(jù)都被清空了!(除非你在SQL文件中添加了insert操作)其實(shí)在開發(fā)環(huán)境我也是不建議使用clean,畢竟填數(shù)據(jù)也是要時(shí)間的。。。

總結(jié)

團(tuán)隊(duì)開發(fā)當(dāng)中的必備工具啊!不過生產(chǎn)環(huán)境當(dāng)中記得把clean-disabled改為true

到此這篇關(guān)于SpringBoot整合Flyway的方法(數(shù)據(jù)庫版本遷移工具)的文章就介紹到這了,更多相關(guān)SpringBoot整合Flyway內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 91大神在线精品视频一区 | 美女一级视频 | 久久久久久网站 | 亚洲成a| 久久久成人啪啪免费网站 | 五月色婷婷琪琪综合伊人 | 天堂在线视频网站 | 韩国一级特黄清高免费大片 | 国产亚洲国产bv网站在线 | 国产欧美精品午夜在线播放 | 国产性生活 | 欧美aaaaa一级毛片在线 | 日本一级高清不卡视频在线 | 亚洲无色 | 91一区 | 日韩大片高清播放器大全 | 91热视频在线观看 | 国产玖玖视频 | 欧美色性视频 | 瑟瑟网站在线观看 | 国产成人久久一区二区三区 | 精品一区二区三区免费观看 | 国内欧美一区二区三区 | 国内久久 | 欧美国产日韩在线观看 | 日韩一级片免费在线观看 | 18videosex性欧美69 | 91精品视频播放 | 国产一级特黄aaa大片 | 欧美巨大精品videos | 夜色成人性y | 最新国产美女一区二区三区 | 国产精品国产三级国产a | 免费亚洲成人 | 黄色三级免费 | 国产爽爽视频 | 女人张开腿让男人捅视频 | 国产精选在线播放 | 亚洲一区免费视频 | 久久免费视屏 | 12至16末成年毛片视频 |