liquibase安装

下载地址

https://github.com/liquibase/liquibase/releases

根据自己的系统下载文件, 直接解压出来, 可执行文件.

免费命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
//版本
liquibase --version

//查看liquibase支持的所有命令
liquibase --help

//查看此个命令支持的参数选项信息
liquibase 命令 --help

//查看目标数据库是否能连接成功、pro证书信息是否有效(使用高级命令)
//当前目录需要有liquibase.properties文件
liquibase status

# 通过数据库更新 myChangeLog.xml
//前提:当前目录必须有liquibase.properties文件
//基于数据库信息生成一份原始changeLogFile文件
//数据库结构快照备份,备份完之后修改liquibase.properties的地址,运行 liquibase update 可快速迁移无需一个一个创建
liquibase generate-changelog

//前提:当前目录必须有liquibase.properties文件以及liquibase.properties定义的changeLogFile文件
//基于liquibase.properties属性里面定义的changeLogFile文件来更新、修改数据库
liquibase update


//前提:当前目录必须有liquibase.properties文件以及liquibase.properties定义的changeLogFile文件
//基于liquibase.properties属性里面定义的changeLogFile文件来更新、修改数据库(最多仅更新10个未部署的<changgeset>的语句,如果某个changeset之前已经部署过就不算)
liquibase updateCount 部署changeset节点的个数

//前提:当前目录必须有liquibase.properties文件以及liquibase.properties定义的changeLogFile文件
//基于changeLogFile的文件生成具体的真正可在数据库运行的SQL语句 == 仅仅生成SQL语句不会在数据库中生效,如果想让SQL语句的数据库生效请使用 liquibase update
liquibase update-sql


//其实就是展示databasechangelog的记录:FILENAME、ID、AUTHOR、DEPLOYMENT_ID
liquibase history


//比对数据库结构
//选项参数参看:liquibase diff --help
//liquibase diff
//将比对结果保存在当前目录的diff.txt目录中 == 结果形式看下面的图片即可
//liquibase diff --outputFile=diff.txt
//将比对结果保存在当前目录的diff.json目录中,且内容格式是json,结构化数据
//liquibase diff --format=json --outputFile=diff.json
liquibase diff

//生成的文件,表示当前目标数据库在源库表结构相差的东西
//生成的文件最后可以使用(使得目标库与源库结构一致):liquibase update --changelog-file=diffChangelog.xml
liquibase diff-changelog --changelog-file=diffChangelog.xml


//生成数据库结构、changlog文件内容显示 -- 仅能生成html文档
liquibase db-doc --output-directory=文档输出目录


//查看当前是否有用户在运行liquibase更改数据库结构 == 即表DATABASECHANGELOGLOCK是否有LOCKED=1的记录
liquibase list-locks

//释放锁 = 将表DATABASECHANGELOGLOCK的LOCKED=1的记录,修改LOCKED=0且将被锁的开始时间LOCKGRANTED、使用锁的IP地址LOCKEDBY都置空
//一般来说用不上,因为liquibase正常变更、退出会自动释放锁,如果非正常退出可能锁的状态没来得及释放,需要你手动执行该条命令释放,或者直接去数据库修改锁状态设为0即可
liquibase release-locks


//数据库结构快照 == 感觉跟 generate-changgelog差不多 == 文件存放在当前目录下
liquibase --outputFile=snapshot.text snapshot --snapshot-format=text
liquibase --outputFile=snapshot.yml snapshot --snapshot-format=yml
liquibase --outputFile=snapshot.json snapshot --snapshot-format=json

//表结构回滚
liquibase rollback 标签名

//基于某个changelog文件,表结构回滚最新部署的某几条变更(将SQL作用到数据库,建议使用这条命令前,先用 rollback-count-sql确认一下SQL语句)
liquibase rollback-count 回滚最新部署的条数
//基于某个changelog文件,表结构回滚最新部署的SQL查看(未作用SQL部署到数据库,仅是看SQL的命令而已)
liquibase rollback-count-sql 回滚最新部署的条数




//表结构回滚到某一个时间节点的部署 == 原本部署的是新增,回滚即是删除,如果原本部署的是删除,回滚新增是不支持的
//下面的语句是等价于 liquibase rollback-to-date yyyy-MM-dd 00:00:00
liquibase rollback-to-date yyyy-MM-dd
//具体的时间节点 -- 更建议加上详细的时间点上去
liquibase rollback-to-date yyyy-MM-dd HH:mm:ss


# 针对当前数据库,我们通过liquibase tag进行打标签操作
liquibase tag v1.0

# 回滚到指定版本
liquibase rollback v1.0

# 更新历史
liquibase history

liquibase安装
https://zhaops-hub.github.io/2024/04/29/mysql/liquibase/liquibase安装/
作者
赵培胜
发布于
2024年4月29日
许可协议