Liquibase 初体验
Mr.Lee 2025-06-18 09:13:01 JDBCJavaLiquibase
项目中对Liquibase的应用
# 生成changelog文件
根据数据库中现有的表结构和数据生成 YAML 格式的 changelog 文件
liquibase --url="jdbc:dm://127.0.0.1:5236?schema=OMM" \
--username=SYSDBA \
--password=SYSDBA001 \
--defaultSchemaName=OMM \
--diffTypes=data \
--includeObjects="table:T_DEMO" \
--changeLogFile=data.yaml \
generate-changelog
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
参数 | 说明 |
---|---|
--driver | JDBC 驱动类名 (如:com.mysql.cj.jdbc.Driver ) |
--classpath | JDBC 驱动 jar 路径 (如:/lib/mysql-connector-java.jar ) |
--url | 数据库 JDBC URL (如:jdbc:mysql://host:port/db ) |
--username | 数据库用户名 |
--password | 数据库密码 |
--includeCatalog | 包含数据库名称 |
--includeSchema | 包含 Schema 名称 |
--diffTypes | 指定生成类型,支持:tables , views , columns , indexes , foreignkeys , primarykeys , uniqueconstraints , sequences , data |
--includeObjects | 指定要包含的对象,支持通配符(如:--includeObjects="table:user*, table:product" ) |
--excludeObjects | 排除特定表(table:tmp_* ) |
--changeLogFile | 生成的 changelog 文件路径 (如:db/changelog.yaml ) |
# 初始化数据库
根据已有的 YAML 格式的 changelog 文件初始化数据库的表结构和数据
环境准备
❯ tree .
.
├── 1.5.0
│ ├── changelog-test.yaml
│ └── data-test.yaml
└── changelog-root.yml
❯ cat changelog-root.yml
databaseChangeLog:
- changeSet:
id: 2024316174311-0
author: cecbrain
tagDatabase:
tag: version_1_5_0
- include:
file: 1.5.0/changelog-test.yaml
- include:
file: 1.5.0/data-test.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
执行脚本
liquibase --url="jdbc:dm://127.0.0.1:5236?schema=OMM" \
--defaultSchemaName=OMM \
--username=SYSDBA \
--password=SYSDBA001 \
--changelog-file=changelog-root.yml \
update
1
2
3
4
5
6
2
3
4
5
6