Liquibase 使用(全)

Liquibase是一款用于数据库脚本版本管理的工具,适用于开发和测试环境,能有效降低数据库变更带来的沟通成本和风险。它支持多种文件格式,如XML、YAML、JSON和SQL,可通过命令行或构建工具进行操作,实现数据库版本的比较、更新和回滚。
该文章已生成可运行项目,

聊一个数据库脚本的版本工具 Liquibase,官网在这里 ,初次看到,挺神奇的,数据库脚本也可以有版本管理,同类型的工具还有 flyway 。

开发过程经常会有表结构和变更,让运维来维护的话,通常会有很大的沟通成本,有时在开发方案有问题的时候,提测失败整个项目需要回滚,代码回滚起来是很容易的,通常有备份,但数据库的话就要人工来逐行分析并写出回滚语句,Liquibase 这时候就有用了。

Liquibase 适用场景感觉不多,所以可能有人没听过它的名头; 首先这种自动执行的家伙肯定是不适合于生产环境的,然后在数据量大的时候是不可能用数据库自带的 alter 语句的,一般都是手动创建另一张表,然后用 sql 语句将数据批量复制过去,再者使用容器化也比它好,个人觉得它一般用于开发和测试环境,比较厉害的一个功能是可以比较两个库的差异然后生成补丁包,上线时可以这么玩。

这篇文章说得不错,我是在这篇基本上写的

核心概念

首先它是用于管理数据库版本的,所以就会有这些概念:版本号,管理的数据,差异比较,版本回滚

它的版本号由开发人员来维护,使用 author + id

管理的数据最小单元为 changeSet ,这个 changeSet 看官网说是可以用 xml,yaml,json,sql 来编写

提交数据,比较差异,版本回滚 可以使用命令行 或者 maven ,ant 等构建工具来完成

从命令行开始

看网上说的都是集成自 springboot ,但这种数据库脚本一般公司都是运维在维护,使用命令行是最方便的方式,所以我先说下使用命令行,官网示例

为先为了不每次都要写一大堆参数,可以在 liquibase 根目录加一个 liquibase.properties,用于配置数据库 jar 包,url ,用户名,密码等参数,配置详情

命令格式: liquibase [options] [command] [command parameters]

比较开发库和测试库的差异,并生成升级包

如果要升级哪个,则哪个要做为源,则配置中的 url 不是 referenceUrl,使用如下命令创建升级包

liquibase --changeLogFile="changeLogFiledevtest.postgres
本文章已经生成可运行项目
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值