liquibase相关
-
不依赖于特定的数据库,目前支持包括Oracle/Sql Server/DB2/MySql/Sybase/PostgreSQL/Caché等12种数据库,
这样在数据库的部署和升级环节可帮助应用系统支持多数据库
- 提供数据库比较功能,比较结果保存在XML中,基于该XML你可用Liquibase轻松部署或升级数据库
- 以XML存储数据库变化,其中以作者和ID唯一标识一个变化(ChangSet),支持数据库变化的合并,因此支持多开发人员同时工作
-
在数据库中保存数据库修改历史(DatabaseChangeHistory),在数据库升级时自动跳过已应用的变化(ChangSet)
-
提供变化应用的回滚功能,可按时间、数量或标签(tag)回滚已应用的变化。通过这种方式,开发人员可轻易的还原数据库在任何时间点的状态
- 可生成数据库修改文档(HTML格式)
- 提供数据重构的独立的IDE和Eclipse插件
目录以及文件解释
- data
存放初始化数据文件
- schemas
存放数据结构变动脚本
- changelog.xml
主要执行文件,引入相关数据变动脚本
- liquibase.properties
数据库配置文件
- pom.xml
引入数据库依赖以及liquibase插件
liquibase常用命令
changelogSync : 將changelog中未套用至db的change logs标识成已同步
changelogSyncSQL : 同changelogSync,但只產生sql,而不執行同步到db
generateChangeLog : 將目前数据库的结构(默认不包含数据)生成 xml
dbDoc : 產生像java doc的文件
diff : 比對兩個数据库間的差異
status : 顯示目前change set有那些change log會被套用到db
rollbackSql:根据回滚版本生成回滚sql
rollback:根据回滚版本生成回滚sql,并在数据库中执行
update : 将changeLog.xml中的数据变动changeset脚本转化为sql语句,直接在数据库中执行
updateSQL : 将changeLog.xml中的数据变动changeset脚本转化为sql语句,
并输出到对应的文件中
Flyway VS Liquibase
Flyway
- 简单,直接写sql保存文件
- 不支持回滚
- 数据库迁移问题(SQL语句并不是一个广泛兼容的语言,有些关键字是独有的,如果flyway就需要兼容写两套sql脚本)
Liquibase
- 支持多种格式(xml/json/yaml/sql)
- 支持多种数据库迁移
- 可读性强
- 支持回滚
https://gitee.com/Soulll/dbtest
网友评论