溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Springboot+Flyway管理項(xiàng)目SQL腳本怎么寫

發(fā)布時(shí)間:2021-09-29 17:19:44 來(lái)源:億速云 閱讀:258 作者:柒染 欄目:大數(shù)據(jù)

這篇文章給大家介紹Springboot+Flyway管理項(xiàng)目SQL腳本怎么寫,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

測(cè)試包放在前面

  • 下載測(cè)試包 建議使用 GitZip for github 插件下載獨(dú)立目錄

  • 修改 application.yaml 數(shù)據(jù)庫(kù)地址.

  • 啟動(dòng)后訪問(wèn) http://localhost:8080/user/info/1

Flyway 的工作原理

flyway 需要在 DB 中先創(chuàng)建一個(gè) metdata 表 (缺省表名為 flyway_schema_history), 在該表中保存著每次 migration 的記錄, 記錄包含 migration 腳本的版本號(hào)和 SQL 腳本的 checksum 值. 當(dāng)一個(gè)新的 SQL 腳本被掃描到后, Flyway 解析該 SQL 腳本的版本號(hào), 并和 metadata 表已 apply 的的 migration 對(duì)比, 如果該 SQL 腳本版本更新的話, 將在指定的 DB 上執(zhí)行該 SQL 文件, 否則跳過(guò)該 SQL 文件.

版本號(hào)大小說(shuō)明

兩個(gè) flyway 版本號(hào)的比較, 采用左對(duì)齊原則, 缺位用 0 代替. 舉例如下:

  • 1.2.9.4 比 1.2.9 版本高

  • 1.2.10 比 1.2.9.4 版本高

  • 1.2.10 和 1.2.010 版本號(hào)一樣高, 每個(gè)版本號(hào)部分的前導(dǎo) 0 會(huì)被忽略

腳本分類

Flyway SQL 文件可以分為兩類:

  • Versioned

  • Repeatable

Versioned

Versioned migration 用于版本升級(jí), 每個(gè)版本有唯一的版本號(hào)并只能 apply 一次

Repeatable

Repeatable migration 是指可重復(fù)加載的 migration. 一旦 SQL 腳本的 checksum 有變動(dòng), flyway 就會(huì)重新應(yīng)用該腳本. 它并不用于版本更新, 這類的 migration 總是在 versioned migration 執(zhí)行之后才被執(zhí)行.

Migration SQL的命名規(guī)則圖

Springboot+Flyway管理項(xiàng)目SQL腳本怎么寫

其中的文件名由以下部分組成,除了使用默認(rèn)配置外,某些部分還可自定義規(guī)則.

  • prefix: 可配置,前綴標(biāo)識(shí),默認(rèn)值 V 表示 Versioned, R 表示 Repeatable

  • version: 標(biāo)識(shí)版本號(hào), 由一個(gè)或多個(gè)數(shù)字構(gòu)成, 數(shù)字之間的分隔符可用點(diǎn).或下劃線_

  • separator: 可配置, 用于分隔版本標(biāo)識(shí)與描述信息, 默認(rèn)為兩個(gè)下劃線 '__'

  • description: 描述信息, 文字之間可以用下劃線或空格分隔

  • suffix: 可配置, 后續(xù)標(biāo)識(shí), 默認(rèn)為.sql

關(guān)于開發(fā)|生產(chǎn)環(huán)境版本說(shuō)明

  1. 開發(fā)環(huán)境 SQL 文件建議采用時(shí)間戳作為版本號(hào).

多人一起開發(fā)不會(huì)導(dǎo)致版本號(hào)爭(zhēng)用, 同時(shí)再加上生產(chǎn)環(huán)境的版本號(hào), 這樣的話, 將來(lái)手工 merge 成生產(chǎn)環(huán)境 migration 腳本也比較方便, SQL 文件示例:

V20200317.1059__V1.0_Unique_User_Names.sql
V20180317.1459__V1.0_Add_SomeTables.sql
  1. 生產(chǎn)環(huán)境 SQL 文件, 應(yīng)該是手動(dòng) merge 開發(fā)環(huán)境的 SQL 腳本, 版本號(hào)按照正常的版本, 比如 V2.1.5_001__Release.sql

關(guān)于Springboot+Flyway管理項(xiàng)目SQL腳本怎么寫就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI