3. Liquibase 安装与配置:下载与安装、环境变量设置、liquibase.properties 配置文件详解
Liquibase 的安装与配置是数据库迁移工作的起点。本章将详细讲解如何在不同操作系统上下载、安装 Liquibase,配置环境变量,并深入解析核心配置文件 liquibase.properties 的每一个关键参数。
3.1 下载与安装
Liquibase 提供了多种安装方式,推荐使用官方压缩包进行手动安装,以确保版本可控。以下是标准安装步骤:
- 下载压缩包:访问 Liquibase 官方 GitHub Releases 页面,下载最新稳定版的
liquibase-x.y.z.tar.gz(Linux/macOS)或liquibase-x.y.z.zip(Windows)。 - 解压到目标目录:将压缩包解压到无空格、无中文的路径,例如
C:\liquibase(Windows)或/opt/liquibase(Linux/macOS)。 - 验证安装:进入解压目录,运行
liquibase --version命令,确认版本信息正常输出。
JDK 依赖提示:Liquibase 4.x 及以上版本需要 Java 8 或更高版本运行环境。请确保已安装 JDK 并配置了
JAVA_HOME 环境变量。
下表总结了不同操作系统的安装要点:
| 操作系统 | 推荐安装路径 | 启动脚本 | 注意事项 |
|---|---|---|---|
| Windows | C:\liquibase |
liquibase.bat |
路径中避免中文和空格 |
| Linux | /opt/liquibase |
liquibase |
赋予执行权限:chmod +x liquibase |
| macOS | /usr/local/liquibase |
liquibase |
可通过 Homebrew 安装:brew install liquibase |
3.2 环境变量设置
为了在任意目录下直接调用 liquibase 命令,需要将 Liquibase 的安装路径添加到系统的 PATH 环境变量中。同时,建议设置 LIQUIBASE_HOME 变量以方便其他工具集成。
以下是在不同操作系统中配置环境变量的标准方法:
- Windows(永久设置):
# 通过系统属性 -> 环境变量添加 变量名: LIQUIBASE_HOME 变量值: C:\liquibase # 在 Path 变量中追加 %LIQUIBASE_HOME% - Linux / macOS(临时生效,可写入 ~/.bashrc 或 ~/.zshrc):
export LIQUIBASE_HOME=/opt/liquibase export PATH=$PATH:$LIQUIBASE_HOME
配置验证:配置完成后,打开新的终端窗口,执行
liquibase --version。如果输出类似 Liquibase Version: 4.25.0 的信息,则说明环境变量配置成功。
3.3 liquibase.properties 配置文件详解
liquibase.properties 是 Liquibase 的核心配置文件,用于集中管理数据库连接信息、变更日志路径、输出格式等参数。通过该文件,可以避免在命令行中重复输入冗长的参数。
配置文件采用标准的 key=value 格式,支持注释(以 # 开头)。以下是一个典型的配置文件示例:
# 数据库连接配置
changeLogFile: db/changelog/db.changelog-master.xml
url: jdbc:mysql://localhost:3306/mydb?useSSL=false&allowPublicKeyRetrieval=true
username: liquibase_user
password: liquibase_pass
driver: com.mysql.cj.jdbc.Driver
# 输出与日志配置
outputFile: liquibase_output.txt
logLevel: INFO
# 默认 Schema 与上下文
defaultSchemaName: my_schema
contexts: production, migration
# Liquibase 内部表配置
liquibaseSchemaName: liquibase_schema
liquibaseTablespaceName: liquibase_tbs
# 其他常用参数
databaseChangeLogLockTableName: DATABASECHANGELOGLOCK
databaseChangeLogTableName: DATABASECHANGELOG
3.4 核心参数分类解析
为了便于理解,我们将 liquibase.properties 中的参数分为四大类:连接类、变更日志类、行为控制类和输出类。
| 分类 | 参数名 | 说明 | 示例值 |
|---|---|---|---|
| 连接类 | url |
数据库 JDBC 连接 URL | jdbc:postgresql://localhost:5432/mydb |
username |
数据库用户名 | admin |
|
password |
数据库密码 | secret |
|
driver |
JDBC 驱动类全名 | org.postgresql.Driver |
|
| 变更日志类 | changeLogFile |
主变更日志文件路径(相对于项目根目录) | db/changelog/db.changelog-master.xml |
contexts |
激活的上下文标签,用于按环境过滤变更集 | dev,test |
|
| 行为控制类 | defaultSchemaName |
默认数据库 Schema | public |
liquibaseSchemaName |
存放 Liquibase 内部跟踪表的 Schema | liquibase_admin |
|
databaseChangeLogTableName |
自定义 DATABASECHANGELOG 表名 | MY_CHANGELOG |
|
| 输出类 | outputFile |
将 Liquibase 输出重定向到文件 | logs/liquibase_run.log |
logLevel |
日志级别:OFF, SEVERE, WARNING, INFO, DEBUG, FINE | INFO |
最佳实践:建议将
liquibase.properties 文件放置在项目的根目录下,并纳入版本控制(注意对密码字段进行脱敏或使用环境变量引用,如 ${DB_PASSWORD})。对于多环境部署,可以创建 liquibase-dev.properties、liquibase-prod.properties 等文件,通过 --defaultsFile 参数指定。
3.5 配置文件的加载优先级
Liquibase 在启动时会按照以下优先级顺序加载配置参数(高优先级覆盖低优先级):
- 命令行参数:通过
--url、--username等直接传入的参数优先级最高。 - 环境变量:以
LIQUIBASE_为前缀的环境变量,例如LIQUIBASE_URL。 - 项目配置文件:当前目录下的
liquibase.properties文件。 - 用户主目录配置文件:
~/.liquibase/liquibase.properties。 - 默认值:Liquibase 内置的默认参数。
安全提醒:切勿将包含明文密码的
liquibase.properties 文件提交到公开的版本仓库。建议使用 .gitignore 忽略该文件,或通过环境变量注入密码。
通过本章的学习,您应该能够独立完成 Liquibase 的安装、环境配置,并理解核心配置文件的参数含义。这些基础工作将为后续的数据库迁移操作和版本差异分析奠定坚实的基础。