Striveonger

vuePress-theme-reco Mr.Lee    2015 - 2025
Striveonger Striveonger
主页
分类
  • 文章
  • 笔记
  • 工具
标签
时间轴
author-avatar

Mr.Lee

264

Article

134

Tag

主页
分类
  • 文章
  • 笔记
  • 工具
标签
时间轴

Liquibase 初体验

vuePress-theme-reco Mr.Lee    2015 - 2025

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
参数 说明
--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

执行脚本

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