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

 

posted on 2018-08-03 16:38  dreamstar  阅读(370)  评论(0编辑  收藏  举报