欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

Flyway是什么

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

簡介

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

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

clean操作

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

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

clean-on-validation-error:發(fā)生驗證的錯誤時是否執(zhí)行clean操作(如SQL執(zhí)行失?。J(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,此時并不會執(zhí)行clean操作。
當(dāng)把SQL文件修改正確并執(zhí)行完后,此時flyway_schema_history會把失敗記錄的success字段由0改為1。并且會執(zhí)行clean操作!?。。?!整個數(shù)據(jù)庫的表里面的數(shù)據(jù)都被清空了!(除非你在SQL文件中添加了insert操作)
其實在開發(fā)環(huán)境我也是不建議使用clean,畢竟填數(shù)據(jù)也是要時間的。。。

總結(jié)

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

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

相關(guān)文章

  • IDEA中Translation使用及問題解決

    IDEA中Translation使用及問題解決

    本文主要介紹了IDEA中Translation使用及問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Spring boot外部配置(配置中心化)詳解

    Spring boot外部配置(配置中心化)詳解

    這篇文章主要給大家介紹了關(guān)于Spring boot外部配置(配置中心化)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • Java實現(xiàn)判斷瀏覽器版本與類型簡單代碼示例

    Java實現(xiàn)判斷瀏覽器版本與類型簡單代碼示例

    這篇文章主要介紹了Java實現(xiàn)判斷瀏覽器版本與類型簡單代碼示例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • springMVC使用ajaxFailUpload上傳圖片的方法

    springMVC使用ajaxFailUpload上傳圖片的方法

    這篇文章主要介紹了springMVC使用ajaxFailUpload上傳圖片的相關(guān)知識,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • Java中文件寫入內(nèi)容的幾種常見方法

    Java中文件寫入內(nèi)容的幾種常見方法

    本文主要介紹了Java中文件寫入內(nèi)容的幾種常見方法,主要包括使用NIO的Files工具類、通過commons-io的FileUtils工具類、RandomAccessFile、PrintWriter和BufferedWriter這幾種,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • SpringSecurity+Redis+Jwt實現(xiàn)用戶認(rèn)證授權(quán)

    SpringSecurity+Redis+Jwt實現(xiàn)用戶認(rèn)證授權(quán)

    SpringSecurity是一個強大且靈活的身份驗證和訪問控制框架,本文主要介紹了SpringSecurity+Redis+Jwt實現(xiàn)用戶認(rèn)證授權(quán),具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • ZooKeeper入門教程一簡介與核心概念

    ZooKeeper入門教程一簡介與核心概念

    本文是ZooKeeper入門系列教程,涵蓋ZooKeeper核心內(nèi)容,通過實例和大量圖表,結(jié)合實戰(zhàn),幫助學(xué)習(xí)者理解和運用,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-01-01
  • jedis的testWhileIdle用法源碼解讀

    jedis的testWhileIdle用法源碼解讀

    這篇文章主要為大家介紹了jedis的testWhileIdle用法源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • java中實體類和JSON對象之間相互轉(zhuǎn)化

    java中實體類和JSON對象之間相互轉(zhuǎn)化

    Java中關(guān)于Json格式轉(zhuǎn)化Object,Map,Collection類型和String類型之間的轉(zhuǎn)化在我們實際項目中應(yīng)用的很是普遍和廣泛。最近工作的過程中也是經(jīng)常有,因此,自己封裝了一個類分享給大家。
    2015-05-05
  • Java之JNDI注入的實現(xiàn)

    Java之JNDI注入的實現(xiàn)

    JNDI是Java EE的重要部分,本文主要介紹了Java之JNDI注入的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評論