SpringBoot學習筆記(十二:Liquibase )

      網友投稿 1157 2025-03-31

      文章目錄

      一、Liquibase 簡介

      1、主要特點:

      2、使用方式

      3、變更集合

      二、Springboot整合Liquibase

      1、依賴

      2、配置

      2、master.xml

      3、test.xml

      4、運行效果

      一、Liquibase 簡介

      LiquiBase(從 2006 年開始投入使用)是一種免費開源的工具,可以實現不同數據庫版本之間的遷移。本質上是一個執行sql腳本的工具。

      1、主要特點:

      支持幾乎所有主流的數據庫,如MySQL、PostgreSQL、Oracle、Sql Server、DB2等

      支持多開發者的協作維護;

      日志文件支持多種格式;如XML、YAML、SON、SQL等

      支持多種運行方式;如命令行、Spring 集成、Maven 插件、Gradle 插件等

      2、使用方式

      要開始使用 LiquiBase,需要以下四個步驟:

      創建一個數據庫 變更日志(change log)文件。

      在變更日志文件內部創建一個 變更集(change set)。

      通過命令行或構建腳本對數據庫運行變更集。

      檢驗數據庫中的變更。

      3、變更集合

      SpringBoot學習筆記(十二:Liquibase )

      隨著新特性添加到了應用程序中,經常需要變更數據庫的結構或修改表約束。LiquiBase 提了超過 30 種數據庫重構支持。

      例如:

      添加列

      1

      2

      3

      4

      5

      創建表

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      二、Springboot整合Liquibase

      1、依賴

      springboot內置了對liquibase整合的支持,只需要在項目中引入liquibase的依賴,進行配置即可:

      org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-jdbc mysql mysql-connector-java

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      依賴 spring-boot-starter-jdbc 目的是為了讓 liquibase 能夠獲得 datasource。

      2、配置

      appllication.properties:

      spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/liquibase_test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=root # spring.liquibase.enabled=true spring.liquibase.change-log=classpath:/liquibase/master.xml # spring.liquibase.change-log=classpath:/liquibase/changelog-master.yaml

      1

      2

      3

      4

      5

      6

      7

      更多配置:

      spring.liquibase.change-log 配置文件的路徑,默認值為 classpath:/db/changelog/db.changelog-master.yaml

      spring.liquibase.check-change-log-location 檢查 change log的位置是否存在,默認為true.

      spring.liquibase.contexts 用逗號分隔的運行環境列表。

      spring.liquibase.default-schema 默認數據庫 schema

      spring.liquibase.drop-first 是否先 drop schema(默認 false)

      spring.liquibase.enabled 是否開啟 liquibase(默認為 true)

      spring.liquibase.password 數據庫密碼

      spring.liquibase.url 要遷移的JDBC URL,如果沒有指定的話,將使用配置的主數據源.

      spring.liquibase.user 數據用戶名

      spring.liquibase.rollback-file 執行更新時寫入回滾的 SQL文件

      2、master.xml

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      官方是支持 xml,yaml,json 三種格,這里也可以寫成yaml格式或者json格式,配置文件里修改 spring.liquibase.change-log 即可。官方對比: https://www.liquibase.org/documentation/changes/sql_file.html

      databaseChangeLog: # 支持 yaml 格式的 SQL 語法 - changeSet: id: 1 author: Levin changes: - createTable: tableName: person columns: - column: name: id type: int autoIncrement: true constraints: primaryKey: true nullable: false - column: name: first_name type: varchar(255) constraints: nullable: false - column: name: last_name type: varchar(255) constraints: nullable: false - changeSet: id: 2 author: Levin changes: - insert: tableName: person columns: - column: name: first_name value: Marcel - column: name: last_name value: Overdijk

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      3、test.xml

      在test.xml中寫了建表的集合:

      init schema

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      4、運行效果

      運行主類,從日志中可以看到Liquibase 在幫我們執行定義好的SQL,如果是第一次啟動,那么數據庫會存在databasechangelog 和 databasechangeloglock兩個表

      test.xml中的sql是創建了一個user表:

      本文為學習筆記類博客,學習資料來源見參考!

      參考:

      【1】:數據庫版本管理工具Liquibase

      【2】:讓開發自動化實現自動化數據庫遷移

      【3】:3.5 springboot與liquibase整合

      【4】:Liquibase官方文檔

      【5】:一起來學SpringBoot | 第二十四篇:數據庫管理與遷移(Liquibase)

      Spring Boot 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Excel選項中增加最近打開的文件數量
      下一篇:C80遷移到651使用651集群資源方法
      相關文章
      亚洲精品国产情侣av在线| 亚洲国产精品99久久久久久| 亚洲福利视频网址| 婷婷亚洲天堂影院| 亚洲七久久之综合七久久| 国产亚洲日韩在线a不卡| 亚洲国产av无码精品| 亚洲精品高清无码视频| 亚洲国产中文在线视频| 浮力影院亚洲国产第一页| 日本亚洲免费无线码 | 亚洲级αV无码毛片久久精品| 亚洲日本久久一区二区va| 中文字幕亚洲综合久久菠萝蜜| 亚洲国产精品免费观看| 国产亚洲精品欧洲在线观看| 久久久久久久综合日本亚洲| 亚洲精品无码国产片| 亚洲天天在线日亚洲洲精| 亚洲AV伊人久久青青草原| 亚洲av无码潮喷在线观看| 国产亚洲Av综合人人澡精品| wwwxxx亚洲| 久久99亚洲网美利坚合众国 | 亚洲a一级免费视频| 亚洲尹人香蕉网在线视颅| 亚洲欧洲精品一区二区三区| 亚洲专区一路线二| 亚洲欧美日韩自偷自拍| 婷婷综合缴情亚洲狠狠尤物| 亚洲一区二区三区无码中文字幕| 久久精品国产精品亚洲精品| 久久精品国产亚洲AV大全| 亚洲AV无码国产精品色| 亚洲AV无码精品国产成人| 亚洲人成无码网WWW| 亚洲AV无码乱码在线观看富二代 | 91亚洲国产成人久久精品网站| 亚洲国产成人超福利久久精品| 国产亚洲精品VA片在线播放| 无码亚洲成a人在线观看|