liquibase
1.Liquibase 是一个用户数据重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,通过执行日志文件中的修改,将数据库更新或者回滚到一致的状态。
Liquibase 支持的数据库:Oracle,MySQL,等
Liquibase 支持的日志文件格式:XML,JSON,SQL,YAML等。
以XML存储数据库变化,其中以作者和ID唯一标识一个变化(ChangSet),支持数据库变化的合并,因此支持多开发人员同时工作
在数据库中保存数据库修改历史(DatabaseChangeHistory),在数据库升级时自动跳过已应用的变化(ChangSet)
提供变化应用的回滚功能,可按时间、数量或标签(tag)回滚已应用的变化。通过这种方式,开发人员可轻易的还原数据库在任何时间点的状态
换言之理解:项目可能要发布到多个环境,每个环境的数据库都不一样,那开发在开发环境对数据库的修改,怎么同步到其他环境呢:开发把对数据库的修改,抽成日志文件,然后提交到svn。然后通过Liquibase来执行这些日志文件,使的各个数据库保持在一致的状态。开发对数据库的修改的情况:增加表,增加字段,修改字段的长度,类型,给表增加记录等等。那开发做的就是针对自己对开发环境数据库的修改 写database changelog 然后提交就好了。
指路: liquibase changelog 常用到的一些 changeset
2.liquibase 运行中出现 INFO … Liquibase: Waiting for changelog lock....是有机器锁表了 参考 数据库重构工具 LiquiBase(5 Liquibase被锁)
查看哪个机器锁表
SELECT * FROM DATABASECHANGELOGLOCK;
如果是本机锁表,解锁语句
UPDATE DATABASECHANGELOGLOCK SET locked=0, lockgranted=null, lockedby=null WHERE id=1