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

Java使用flyway實現(xiàn)腳本自動化的方法詳解

 更新時間:2023年10月27日 09:40:39   作者:生命猿于運動  
Flyway是一個開源的數(shù)據(jù)庫版本控制工具,主要用于管理數(shù)據(jù)庫的版本和變更,它可以自動化地將數(shù)據(jù)庫遷移到不同的版本,同時支持多種數(shù)據(jù)庫類型,本文給大家介紹了如何使用flyway實現(xiàn)腳本自動化,需要的朋友可以參考下

如何使用

使用Flyway,僅需將編寫的好SQL語句寫成sql腳本文件,根據(jù)版本規(guī)定填寫正確的文件名,存放到指定的目錄底下,在項目進行啟動時即可自動掃描指定目錄底下的腳本,根據(jù)數(shù)據(jù)庫Flyway配置表進行對比,將未執(zhí)行的腳本按順序自動執(zhí)行。

Flyway腳本遷移文件命名需要遵循以下規(guī)則:

如上圖,文件命名規(guī)范主要分為以下幾個部分:

  • 前綴:V表示版本化遷移,U表示撤銷遷移,R表示可重復(fù)遷移。
  • 下劃線:在版本號中下劃線會被.替換。
  • 分隔符:兩個下劃線,用來分隔版本號與文件描述詞
  • 描述:腳本文件內(nèi)容的簡短描述,執(zhí)行后內(nèi)容中的下劃線則會被替換為空格。

文件名版本號與文件描述內(nèi)容以兩個下劃線分隔開,命名示例:

  • V1_20231026154401__create_student_table.sql
  • V1_20231026162233__insert_student_data.sql

通常情況下我們都是直接以V前綴進行命名,在需要進行回退操作時,直接在腳本中寫好回退的腳本即可。

更多內(nèi)容可以參考官方文檔說明:https://documentation.red-gate.com/fd/migrations-184127470.html#versioned-migrations

案例分析

首先需要引入flyway依賴包:

<dependency>
	<groupId>org.flywaydb</groupId>
	<artifactId>flyway-core</artifactId>
	<version>6.4.1</version>
</dependency>

application.yml文件中添加flyway相關(guān)配置信息,開啟flyway腳本遷移功能:

spring:
  flyway:
    # flyway 開啟/關(guān)閉
    enabled: true
    # 當(dāng)遷移時發(fā)現(xiàn)目標(biāo)schema非空,而且?guī)в袥]有元數(shù)據(jù)的表時,是否自動執(zhí)行基準(zhǔn)遷移,默認false.
    baseline-on-migrate: true
    # 是否允許無序的遷移,默認false.
    out-of-order: true
    # 遷移時是否校驗,默認為true
    validate-on-migrate: false
    # 遷移腳本的位置,默認db/migration.
    locations: classpath:db
    # flyway 基線版本號
    baseline-version: 0
    # flyway 執(zhí)行記錄表
    table: demo_flyway_schema_history

在上面的配置中也描述了每個屬性參數(shù)的作用,上面的腳本位置配置的是locations: classpath:db,在這里我們就可以將需要進行遷移執(zhí)行的腳本文件,按上面的命名規(guī)范配置好之后存放到此目錄下:

確認好文件存放位置無誤之后,我們就可以直接啟動服務(wù):

如圖服務(wù)啟動成功后,我們就可以看到相關(guān)flyway執(zhí)行的日志信息,如果是首次使用flyway遷移腳本的話,那么就會自動幫我們創(chuàng)建一個flyway執(zhí)行記錄表,表結(jié)構(gòu)如下:

  • installed_rank:主鍵
  • version:版本號
  • description:文件描述
  • type:腳本類型
  • script:完整文件名
  • checksum:flyway通過特定的算法根據(jù)文件內(nèi)容計算出來的一個整數(shù),可以簡單理解為文件內(nèi)容的標(biāo)識符,如果我們在配置中開啟校驗時(validate-on-migrate=true),如果我們文件內(nèi)容有修改將計算出新的checksum與執(zhí)行過的的checksum不一致時即會報mismatch的錯誤,以此來告知開發(fā)者腳本有變動。
  • installed_by:執(zhí)行腳本的數(shù)據(jù)庫用戶
  • execution_time:執(zhí)行時間
  • success:執(zhí)行結(jié)果,0:失敗,1:成功

總結(jié)

有了這么一個腳本遷移的工具,對于開發(fā)人員也好,對運維人員也罷,都能夠減輕雙方的負擔(dān),并且減少在部署時手動去執(zhí)行腳本出錯的風(fēng)險,好的工具一直在為我們節(jié)約更多的時間,用上之后真的停不下來。

以上就是Java使用flyway實現(xiàn)腳本自動化的方法詳解的詳細內(nèi)容,更多關(guān)于Java flyway實現(xiàn)腳本自動化的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java對數(shù)組實現(xiàn)選擇排序算法的實例詳解

    Java對數(shù)組實現(xiàn)選擇排序算法的實例詳解

    這篇文章主要介紹了Java對數(shù)組實現(xiàn)選擇排序算法的實例,選擇排序的比較次數(shù)為 O(N^2)而交換數(shù)為O(N),需要的朋友可以參考下
    2016-04-04
  • Java編程中的構(gòu)造函數(shù)詳細介紹

    Java編程中的構(gòu)造函數(shù)詳細介紹

    這篇文章主要介紹了Java編程中的構(gòu)造函數(shù)詳細介紹,介紹了其概念,格式,與其他函數(shù)的區(qū)別,作用等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • java輸入輸出與方法詳細代碼示例

    java輸入輸出與方法詳細代碼示例

    本文詳細介紹了Java中的輸出方法如println、print和printf,以及輸入的Scanner類使用方法,同時,介紹了Random類生成隨機數(shù)、方法定義、形參和實參關(guān)系、遞歸等概念和使用方式,為編程初學(xué)者提供了全面的Java編程基礎(chǔ)知識,需要的朋友可以參考下
    2024-09-09
  • SpringBoot中統(tǒng)一同步與異步執(zhí)行模型的示例詳解

    SpringBoot中統(tǒng)一同步與異步執(zhí)行模型的示例詳解

    這篇文章主要為大家詳細介紹了SpringBoot中如何統(tǒng)一同步與異步執(zhí)行模型,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-12-12
  • JAVA | Guava EventBus 使用 發(fā)布/訂閱模式的步驟

    JAVA | Guava EventBus 使用 發(fā)布/訂閱模式的步驟

    這篇文章主要介紹了JAVA | Guava EventBus 使用 發(fā)布/訂閱模式的步驟,幫助大家更好的理解和學(xué)習(xí)使用Guava EventBus,感興趣的朋友可以了解下
    2021-03-03
  • IDEA創(chuàng)建SpringBoot的maven項目的方法步驟

    IDEA創(chuàng)建SpringBoot的maven項目的方法步驟

    這篇文章主要介紹了IDEA創(chuàng)建SpringBoot的maven項目的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 關(guān)于Tomcat出現(xiàn)The origin server did not find a current representation for the target resourc...的問題

    關(guān)于Tomcat出現(xiàn)The origin server did not find a current represent

    這篇文章主要介紹了關(guān)于Tomcat出現(xiàn)The origin server did not find a current representation for the target resourc...的問題,感興趣的小伙伴們可以參考一下
    2020-08-08
  • java圖形化界面實現(xiàn)簡單混合運算計算器的示例代碼

    java圖形化界面實現(xiàn)簡單混合運算計算器的示例代碼

    這篇文章主要介紹了java圖形化界面實現(xiàn)簡單混合運算計算器的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 淺談Java 8 新增函數(shù)式接口到底是什么

    淺談Java 8 新增函數(shù)式接口到底是什么

    這篇文章主要介紹了淺談Java 8 新增函數(shù)式接口到底是什么,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Windows安裝Maven并配置環(huán)境變量

    Windows安裝Maven并配置環(huán)境變量

    Maven是一個基于Java的項目管理工具,可以管理項目的構(gòu)建、測試和部署,本文就來介紹一下Windows安裝Maven并配置環(huán)境變量,感興趣的可以了解一下
    2024-11-11

最新評論

卢湾区| 高雄县| 宜川县| 闸北区| 江陵县| 中方县| 临海市| 中超| 温宿县| 仲巴县| 新野县| 友谊县| 东城区| 定日县| 兴山县| 大同市| 桑植县| 乌审旗| 衡南县| 嘉兴市| 元谋县| 吉林省| 清涧县| 通化县| 仁寿县| 青河县| 揭西县| 彭阳县| 苏州市| 梁平县| 温宿县| 永清县| 五常市| 林州市| 河源市| 玉树县| 大丰市| 祁门县| 邵东县| 黄冈市| 江永县|