Liquibase
# 400.Liquibase
在实际上线的应用中,随着版本的迭代,经常会遇到需要变更数据库表和字段,必然会遇到需要对这些变更进行记录和管理,以及回滚等等;
只有对这些变更进行脚本化且版本可管理,才能在让数据库实现真正的 DevOps(自动化执行 + 回滚等),从而保证开发环境,测试环境,生产环境数据库版本的一致性。
在这样的场景下 Liquibase 等工具的出现也就成为了必然。
就比如,我之前所在的公司就经常遇到测试环境和生产环境的数据库结构不一致的情况。
# Liquibase 介绍
工作原理:
- 定义一些配置文件(例如 XML),每个文件内包含了要修改的内容(例如
createTable
、addColumn
等操作)。 - 通过这种 XML 文件的方式,就可以将代码版本与数据库版本关联在一起。
- 项目启动,会自动执行这些配置文件(Liquibase 具有执行锁,执行过的内容不会再重复执行)
- 具体要修改的内容,可以通过 Liquibase 提供的标签编写,无需关心具体的数据库产品(MySQL、Oracle 等),Liquibase 会根据实际使用的数据库类型转化为对应的 SQL 并执行
通过上面的描述,可以看出 Liquibase 带来的几个好处:
- 支持多类型的数据库产品,无需维护 SQL 脚本
- 项目启动可以自动升级数据库
- 代码版本与数据库版本关联在一起
官网:Liquibase (opens new window)
SpringBoot 也推荐了两款工具来管理数据库版本:Liquibase 和 Flyway。
这里仅仅做个介绍,后续有机会再实践下。
(完)
上次更新: 2024/12/4 21:15:24