聊一个数据库脚本的版本工具 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

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

被折叠的 条评论
为什么被折叠?



