Spring Boot Liquibase 使用方法

介紹

Liquibase是一個獨立於開源數據庫的庫,用於跟蹤,管理和應用數據庫模式更改。它始於2006年,可以更輕鬆地跟蹤數據庫更改,尤其是在敏捷軟件開發環境中。想要了解更多建議去官網

特性

  • 支持幾乎所有主流的數據庫,如MySQL, PostgreSQL, Oracle, H2等;
  • 支持多開發者的協作維護;
  • 日誌文件支持多種格式,如XML, YAML, SQL等;

本文目的

以前的數據庫添加字段大多直接操作數據庫,但可能在切換環境(如 dev,test,prod)時,忘記修改數據庫導致出錯,所以將數據庫控制交給 liquibase 是個很好的方式,本文使用Spring Boot 2.0 集成 liquibase ,使用的是 sql 控制的方式,sql方式比較方便,但是存在弊端,sql不能兼容所有數據庫。


enjoy coding!

使用方法

GitHub源碼地址

1.引入依賴

<dependency>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-core</artifactId>
</dependency>

2.添加配置

spring:
  liquibase:
    # 開啓 liquibase
    enabled: true 
    # 配置 changlog 文件路徑
    change-log: classpath:/db/changelog/changelog-master.xml 

詳細配置項

配置Key 描述
spring.liquibase.enabled 是否開啓 liquibase(默認爲 true
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.url 要遷移的JDBC URL,如果沒有指定的話,將使用配置的主數據源

3.編寫 changlog-master.xml 文件

<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
         http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
    <!-- 掃面 所有 Sql文件路徑 ,相對路徑-->
    <includeAll path="../sqlfile/" relativeToChangelogFile="true"/>
</databaseChangeLog>

4.sql文件編寫

在這裏插入圖片描述

CREATE TABLE IF NOT EXISTS `test`(
   `id` INT UNSIGNED AUTO_INCREMENT,
   `title` VARCHAR(100) NOT NULL,
   `author` VARCHAR(40) NOT NULL,
   `date` DATE,
   PRIMARY KEY ( `id` )
);

5.持續更新sql文件(保證版本,創建新目錄,編寫更新sql)

在這裏插入圖片描述

alter table `test` add column `test_field` VARCHAR(100) NOT NULL;

總結

本文只是簡單的說了怎麼在 springboot 項目中使用 liquibase , 更多的 liquibase 姿勢還得細細研究。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章