liquibase in Spring & SpringBoot
团队使用了liquibase来管理数据库的变更,数据库管理工具,用久了会发现这个很不错。
什么是Liquibase
Liquibase是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。
它将所有数据库的变化,changeset(包括结构和数据)都保存在XMl文件中,便于版本控制。
- 跟踪
- 管理
- 应用数据库变化
- 开源的数据库重构工具
Liquibase能做什么?
1.不依赖于特定的数据库,主流的数据库都支持。目前支持包括Oracle/Sql Server/DB2/Mysql/Sybase/PostgreSQL/Cache等12种数据库,这样的数据库的部署和升级环节可帮助应用系统支持多种数据库。
2.提供数据库比较功能、比较结果保存在xml中,基于该XML你可用Liquibase轻松实现部署或升级数据库。
3.Liquibase以XMl存储数据库变化,其中以作者和ID唯一标识一个变化(changeSet),支持数据库变化的合并,因此支持多开发人员同时工作。
4.在数据库中保存 数据库修改历史(DatabaseChangeHistory),在数据库升级时自动跳过已应用的变化(changeSet)。
5.提供变化应用的回滚功能、可按时间、数量或 标签(tag)回滚已应用的变化。通过这种方式、开发人员可轻易的还原数据库在任何时间点的状态。
6.可生成数据库修改文档(HTML)
7.提供数据重构的独立IDE和Eclipse插件。
为什么使用Liquibase
在日常的开发中,开发团队经常将数据库和应用(也就是代码)视为单独的实体,这样就导致了一个问题:数据库开发团队与应用开发团队成员之间信息沟通不畅,信息交流不及时。这种情况是由于以下原因导致的:
-
手工的数据库变更
-
不能与团队的其他成员分享数据库变更
-
使用不一致的方式去变更数据库或者数据
-
使用低效率的手工方法管理数据库版本之间的变更
解决上面的问题的思路就是:减少人工手工变更数据库的机会,用程序管理数据库版本的更替:将数据库的变更变成xml文件存储到代码中。