最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年06月04日 11:07:03   作者:返回主頁(yè)Johnson木木  
這篇文章主要介紹了SpringBoot整合Flyway的方法(數(shù)據(jù)庫(kù)版本遷移工具),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Flyway是什么

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

簡(jiǎn)介

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

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

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

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

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

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

SQL文件

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

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

clean操作

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

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

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

總結(jié)

團(tuán)隊(duì)開(kāi)發(fā)當(dāng)中的必備工具?。〔贿^(guò)生產(chǎn)環(huán)境當(dāng)中記得把clean-disabled改為true

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

相關(guān)文章

  • SpringBoot整合Mybatis實(shí)現(xiàn)CRUD

    SpringBoot整合Mybatis實(shí)現(xiàn)CRUD

    這篇文章主要介紹了SpringBoot整合Mybatis實(shí)現(xiàn)CRUD的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 使用Mybatis接收Integer參數(shù)的問(wèn)題

    使用Mybatis接收Integer參數(shù)的問(wèn)題

    這篇文章主要介紹了使用Mybatis接收Integer參數(shù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • java 代碼中預(yù)防空指針異常的處理辦法

    java 代碼中預(yù)防空指針異常的處理辦法

    個(gè)人在做項(xiàng)目時(shí),對(duì)NullPointerException的幾點(diǎn)總結(jié),請(qǐng)網(wǎng)友拍磚?。?!多多提意見(jiàn),
    2013-03-03
  • Springboot返回的json屏蔽某些屬性的操作

    Springboot返回的json屏蔽某些屬性的操作

    這篇文章主要介紹了Springboot返回的json屏蔽某些屬性的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Java之String類常用操作方法舉例

    Java之String類常用操作方法舉例

    這篇文章主要介紹了Java之String類常用操作方法的相關(guān)資料,包括了Java中String類的各個(gè)方面,包括String類的聲明、內(nèi)部屬性、不可變性、實(shí)例化方式、拼接、構(gòu)造器、相互轉(zhuǎn)換方法以及常用方法,需要的朋友可以參考下
    2025-03-03
  • Spring中的事件監(jiān)聽(tīng)器使用學(xué)習(xí)記錄

    Spring中的事件監(jiān)聽(tīng)器使用學(xué)習(xí)記錄

    Spring框架中的事件監(jiān)聽(tīng)機(jī)制是一種設(shè)計(jì)模式,它允許你定義和觸發(fā)事件,同時(shí)允許其他組件監(jiān)聽(tīng)這些事件并在事件發(fā)生時(shí)作出響應(yīng),這篇文章主要介紹了Spring中的事件監(jiān)聽(tīng)器使用學(xué)習(xí),需要的朋友可以參考下
    2024-07-07
  • 淺談Java中static和非static的區(qū)別

    淺談Java中static和非static的區(qū)別

    這篇文章主要介紹了Java中static和非static的相關(guān)內(nèi)容,小編覺(jué)得還是很不錯(cuò)的,這里分享給大家,需要的朋友可以參考下。
    2017-10-10
  • netty中的IO、NIO、AIO使用詳解

    netty中的IO、NIO、AIO使用詳解

    這篇文章主要介紹了netty中的IO、NIO、AIO使用詳解,本文會(huì)說(shuō)明各種IO的特點(diǎn)、分別解決了什么樣的問(wèn)題做一個(gè)分析闡述,并結(jié)合Java代碼例子來(lái)輔助理解,像這些的歷史演進(jìn)和詳細(xì)的底層原理網(wǎng)上很多,所以我們只站在應(yīng)用層,使用者的角度去分析,需要的朋友可以參考下
    2023-12-12
  • Java?IPage分頁(yè)操作 附加自定義sql

    Java?IPage分頁(yè)操作 附加自定義sql

    這篇文章主要介紹了Java?IPage分頁(yè)加自定義sql,主要包括引入依賴,impl常規(guī)操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 淺談javaSE 面向?qū)ο?Object類toString)

    淺談javaSE 面向?qū)ο?Object類toString)

    下面小編就為大家?guī)?lái)一篇淺談javaSE 面向?qū)ο?Object類toString)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06

最新評(píng)論

独山县| 富蕴县| 黔西县| 扎兰屯市| 洛川县| 五家渠市| 盈江县| 新竹市| 水富县| 崇左市| 平舆县| 扬中市| 巴彦淖尔市| 东兰县| 腾冲县| 广宁县| 开原市| 武山县| 开平市| 南康市| 峨边| 手机| 甘泉县| 蒙城县| 凤庆县| 敖汉旗| 驻马店市| 疏勒县| 桑植县| 互助| 临清市| 沙湾县| 德安县| 合江县| 巴里| 三门峡市| 固安县| 保康县| 博客| 延吉市| 长汀县|