liquibase是什么
liquibase是一个用于跟踪,管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制。
说白了就是一个将你的数据库脚本转化为xml格式保存起来,包括你对数据库的修改,以及数据的版本信息,方便数据的升级和回滚等操作。
liquibase的特性
- 不依赖于特定的数据库,目前支持包括Oracle/SqlServer/DB2/MySql/Sybase/PostgreSQL/Cache
等12种数据库,这样在数据库的部署和升级环节可帮助应用系统支持多数据库。 - 提供数据库比较功能,比较结果保存在XML中,基于该XML你可用Liquibase轻松部署或升级数据库。
- 以XML存储数据库变化,其中以作者和ID唯一标识一个变化(changset),支持数据库变化的合并,因此支持多开发人员同时合作。
- 在数据库中保存数据库修改历史(DatebaseChangeHistory),在数据库升级时自动跳过以应用的变化(ChangSet)。
- 提供变化应用的回滚功能,可按时间,数量或标签(tag)回滚已应用的变化。通过这种方式,开发人员可轻易的还原数据库在任何时间点的状态。
- 可生成数据库修改文档(HTML格式)。
liquibase与SpringBoot整合
1.pom文件
引入
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>3.6.2</version>
</dependency>
2.application.yaml文件
liquibase:
enabled: true
change-log: classpath:db/changelog/db.changelog-master.yml
3.目录
api
src
main
java
resources
db
changelog
v1.0.0
20200505.yml
db.changelog-1.0.0.yml
db.changelog-master.yml
实例:20200505.yml
databaseChangeLog:
- changeSet:
id: de-v1.0.0-20200505-1
author: xiaoming
changes:
- createTable:
tableName: biaoming(表名)
remarks: 信息表
columns:
- column:
name: PROCESSINSTANCE_ID
type: varchar(64)
- column:
name: VIRTUAL_INFO
type: mediumtext
- column:
name: VIRTUAL_PARAM
type: mediumtext
- column:
name: FFR_VIRTUAL_ID
type: bigint(20)
constraints:
primaryKey: true
nullable: false
remarks: 主键
实例:db.changelog-1.0.0.yml
databaseChangeLog:
- include:
file: db/changelog/v1.0.0/20200505.yml
实例:db.changelog-master.yml
databaseChangeLog:
- include:
file: db/changelog/db.changelog-1.0.0.yml
总结:项目启动的时候, 执行顺序 db.changelog-master.yml——>db.changelog-1.0.0.yml——>20200505.yml
官网
来源:oschina
链接:https://my.oschina.net/u/4305397/blog/4268364