springboot2集成liquibase

网友投稿 755 2022-05-30

LiquiBase概述

Liquibase是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制。

Liquibase具备如下特性:

不依赖于特定的数据库,目前支持包括Oracle/Sql Server/DB2/MySql/Sybase/PostgreSQL/Caché等12种数据库,这样在数据库的部署和升级环节可帮助应用系统支持多数据库。

提供数据库比较功能,比较结果保存在XML中,基于该XML你可用Liquibase轻松部署或升级数据库。

在数据库中保存数据库修改历史(DatabaseChangeHistory),在数据库升级时自动跳过已应用的变化(ChangSet)。

提供变化应用的回滚功能,可按时间、数量或标签(tag)回滚已应用的变化。通过这种方式,开发人员可轻易的还原数据库在任何时间点的状态。

可生成数据库修改文档(HTML格式)

提供数据重构的独立的IDE和Eclipse插件。

Liquibase的核心就是存储变化的XML,如例:

xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.6"

springboot2集成liquibase

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.6

http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.6.xsd">

其中,changeSet包含不同的数据库变化,几乎涵盖了所有的数据库变化类型,具体支持的类型要看API,例如:

创建和删除表、视图、存储过程、主键、外键、索引等

重命名表、视图、列等

加入列缺省值、唯一约束、非空约束等

合并两个列

在一个表的数据的基础上创建一个字典表

除此之外,Liquibase还允许你运行自己的Sql脚本、执行Shell程序。

springboot集成liquibase

liquibase可以使用自己的数据源,也可与spring集成,本次与springboot集成,我们使用springboot的数据源。

1.添加依赖

springboot内置了对liquibase整合的支持,我们只需要在项目中引入liquibase的依赖,进行配置即可。 在pom文件中添加以下依赖:

org.liquibase

liquibase-core

3.6.3

2.配置application.properties(或application.yml)文件

liquibase:

enabled: true                                               #启用liquibase

change-log: classpath:db/changelog/db.changelog-master.xml  #存储变更的XML文件位置

3.编写存储变化的xml文件

db.changelog-master.xml:

xmlns="http://www.liquibase.org/xml/ns/dbchangelog"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"

xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd

http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">

db.changelog-20211130.xml文件内容如下:

4.启动springboot应用,检查数据库,发现所有变更已生效

5.Liquibase基本规范

1. ChangeSet id使用[任务ID]-[日期]-[序号],如 T100-20181009-001

2. ChangeSet必须填写author

3. Liquibase禁止对业务数据进行sql操作

4. 使用时,禁止包含schema名称

5. Liquibase禁止使用存储过程

6. 所有表,列要加remarks进行注释

7. 已经执行过的ChangeSet严禁修改。

8. 不要随便升级项目liquibase版本,特别是大版本升级。不同版本ChangeSet MD5SUM的算法不一样。

Spring Boot 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:JavaWeb——一文带你入门Servlet(生命周期、注解配置方法、IDEA与tomcat的相关配置)
下一篇:Netdata部署与服务器集群监控
相关文章