软件开发中数据库的现状
- 手工变更数据库
- 不能与团队的其他成员分享数据库变更
- 使用不一致的方法变更数据库或数据
- 使用低效的手工方法管理数据库版本之间的变更
这些实践效率低下,使开发人员无法与数据变更保持同步。而且,还使应用程序的 用户遇到与数据不一致和数据损坏等问题。
软件开发项目中经常用到的手工方法操作数据库。手工方法在使用时通常不能保证一致性并且容易产生错误,撤销已完成的工作很困难,而且难以分析数据库变更的历史。例如,某个 DBA 可能想变更查找数据,但是开发人员却忘记将这个数据插入到同一个表中。
Liquibase简介
Liquibase是一个用于跟踪、管理和应用数据库变化开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制。
Liquibase具备如下特性:
不依赖于特定的数据库,目前支持包括Oracle/Sql
Server/DB2/MySql/Sybase/PostgreSQL/Caché等12种数据库,这样在数据库的部署和升级环节可帮助应用系统支持多数据库。提供数据库比较功能,比较结果保存在XML中,基于该XML你可用Liquibase轻松部署或升级数据库。
以XML存储数据库变化,其中以作者和ID唯一标识一个变化(ChangSet),支持数据库变化的合并,因此支持多开发人员同时工作。
在数据库中保存数据库修改历史(DatabaseChangeHistory),在数据库升级时自动跳过已应用的变化(ChangSet)。
提供变化应用的回滚功能,可按时间、数量或标签(tag)回滚已应用的变化。通过这种方式,开发人员可轻易的还原数据库在任何时间点的状态。
可生成数据库修改文档(HTML格式)
提供数据重构的独立的IDE和Eclipse插件