如何在Flyway配置文件中使用并引用系统环境变量
在Flyway配置文件中引用系统环境变量的方法
Flyway原生支持在配置文件中直接引用系统环境变量,以下是不同配置文件格式的具体用法:
.properties 格式(最常用)
使用${环境变量名}的语法直接引用,还可以添加默认值避免变量缺失导致的错误:
- 基础用法:
flyway.url=${DB_URL} flyway.user=${DB_USER} flyway.password=${DB_PASSWORD} - 带默认值的用法:
# 如果DB_USER不存在,就用default_user作为默认值 flyway.user=${DB_USER:default_user} flyway.url=${DB_URL:jdbc:mysql://localhost:3306/mydb}
.toml 格式(Flyway 7.0+ 支持)
语法和properties类似,需要用引号包裹变量引用:
[flyway] url = "${DB_URL}" user = "${DB_USER:default_user}" password = "${DB_PASSWORD}"
.yml/.yaml 格式(Flyway 7.0+ 支持)
在YAML结构中直接使用${}语法:
flyway: url: ${DB_URL} user: ${DB_USER:default_user} password: ${DB_PASSWORD}
注意事项
- 确保系统环境变量已正确设置:
- Linux/macOS:在终端执行
export DB_URL=jdbc:mysql://localhost:3306/mydb - Windows:在命令提示符执行
set DB_URL=jdbc:mysql://localhost:3306/mydb
- Linux/macOS:在终端执行
- 若环境变量名称包含空格或特殊字符,必须用引号包裹引用,比如:
flyway.password="${DB_PASS_WITH_SPACES}" - 运行Flyway时,当前会话必须能访问到这些环境变量(比如CLI运行时要在设置过变量的终端执行,集成到应用时要确保应用进程能读取到变量)
内容的提问来源于stack exchange,提问作者Boketto
相关产品推荐
相关产品推荐

