SpringBoot数据库管理 - 用Liquibase对数据库管理和迁移?

前言

Liquibase是一个用于 用于跟踪、管理和应用数据库变化的开源工具 ,通过日志文件(changelog)的形式记录数据库的变更(changeset),然后执行日志文件中的修改,将数据库更新或回滚(rollback)到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通过执行schema类型的文件来达到迁移。本文主要介绍SpringBoot与Liquibase的集成。

  • SpringBoot数据库管理 - 用Liquibase对数据库管理和迁移?
      • 什么是Liquibase?这类工具要解决什么问题?
      • Liquibase有哪些概念?是如何工作的?
      • 比较好的changelog的实践?
      • 除了addColumn,addTable还有哪些changeType呢?

知识准备

需要理解什么是Liquibase,它的出现是要解决什么问题。

什么是Liquibase?这类工具要解决什么问题?

Liquibase是一个用于 用于跟踪、管理和应用数据库变化的开源工具 ,通过日志文件(changelog)的形式记录数据库的变更(changeset),然后执行日志文件中的修改,将数据库更新或回滚(rollback)到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通过执行schema类型的文件来达到迁移。

其优点主要有以下:

  • 支持几乎所有主流的数据库,目前支持包括 Oracle/Sql Server/DB2/MySql/Sybase/PostgreSQL等 各种数据库 ,这样在数据库的部署和升级环节可帮助应用系统支持多数据库;
  • 支持版本控制,这样就能支持多开发者的协作维护;
  • 日志文件支持多种格式,如XML, YAML, JSON, SQL等;
  • 提供变化应用的回滚功能,可按时间、数量或标签(tag)回滚已应用的变化。通过这种方式,开发人员可轻易的还原数据库在任何时间点的状态
  • 支持多种运行方式,如命令行、Spring集成、Maven插件、Gradle插件等。

为何会出现Liquibase这类工具呢?

在实际上线的应用中,随着版本的迭代,经常会遇到需要变更数据库表和字段,必然会遇到需要对这些变更进行记录和管理,以及回滚等等;同时只有脚本化且版本可管理,才能在让数据库实现真正的DevOps(自动化执行 + 回滚等)。在这样的场景下Liquibase等工具的出现也就成为了必然。

Liquibase有哪些概念?是如何工作的?

工作流程:将 SQL 变更记录到 changeset ,多个changeset变更组成了日志文件( changelog ),liquibase将changelog更新日志文件同步到指定的 RDBMS 中。

日志文件(databaseChangeLog)支持多种格式,如XML, YAML, JSON, SQL; 我们以xml为例,看下相关配置

<?xml version="1.0" encoding="UTF-8"?> 
<databaseChangeLog
	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"
	xmlns:pro="http://www.liquibase.org/xml/ns/pro"
	xsi:sc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值