3. Liquibase 安装与配置:下载与安装、环境变量设置、liquibase.properties 配置文件详解

Liquibase 的安装与配置是数据库迁移工作的起点。本章将详细讲解如何在不同操作系统上下载、安装 Liquibase,配置环境变量,并深入解析核心配置文件 liquibase.properties 的每一个关键参数。

3.1 下载与安装

Liquibase 提供了多种安装方式,推荐使用官方压缩包进行手动安装,以确保版本可控。以下是标准安装步骤:

  1. 下载压缩包:访问 Liquibase 官方 GitHub Releases 页面,下载最新稳定版的 liquibase-x.y.z.tar.gz(Linux/macOS)或 liquibase-x.y.z.zip(Windows)。
  2. 解压到目标目录:将压缩包解压到无空格、无中文的路径,例如 C:\liquibase(Windows)或 /opt/liquibase(Linux/macOS)。
  3. 验证安装:进入解压目录,运行 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 的信息,则说明环境变量配置成功。
Liquibase 环境变量配置流程 1. 下载并解压 2. 设置 LIQUIBASE_HOME 3. 更新 PATH 变量 4. 执行 liquibase --version 配置完成 ✓

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 参数指定。
liquibase.properties 参数分类架构 liquibase.properties 连接类 变更日志类 行为控制类 输出类 url, username, password changeLogFile, contexts defaultSchemaName, liquibaseSchemaName outputFile, logLevel 💡 通过分类管理参数,可以快速定位配置问题 建议使用环境变量引用敏感信息,如 ${DB_PASSWORD}

3.5 配置文件的加载优先级

Liquibase 在启动时会按照以下优先级顺序加载配置参数(高优先级覆盖低优先级):

  1. 命令行参数:通过 --url、--username 等直接传入的参数优先级最高。
  2. 环境变量:以 LIQUIBASE_ 为前缀的环境变量,例如 LIQUIBASE_URL。
  3. 项目配置文件:当前目录下的 liquibase.properties 文件。
  4. 用户主目录配置文件:~/.liquibase/liquibase.properties。
  5. 默认值:Liquibase 内置的默认参数。
安全提醒:切勿将包含明文密码的 liquibase.properties 文件提交到公开的版本仓库。建议使用 .gitignore 忽略该文件,或通过环境变量注入密码。

通过本章的学习,您应该能够独立完成 Liquibase 的安装、环境配置,并理解核心配置文件的参数含义。这些基础工作将为后续的数据库迁移操作和版本差异分析奠定坚实的基础。