如何在Flyway配置文件中使用环境变量?

3

我有一个 Flyway 配置文件 - flyway.properties,其中包含基本的数据库连接参数:

flyway.url=jdbc:mysql://localhost
flyway.user=test
flyway.password=test
flyway.schemas=testdb

据我所知,在这样的配置文件中暴露参数是一种不良的实践。是否可以使用环境参数(创建 .env 文件在其中定义参数并在 flyway 配置中接收它们)?

2个回答

2

您应该能够将每个可能的属性,包括连接和密码,传递到配置文件中,以便您不必在配置文件中存储它们。类似于这样:

flyway -enterprise -url=jdbc:postgresql://localhost:5498/hamshackradio -user=postgres -password=dude1988 -configFiles="./conf/flyway.conf" migrate

这样你就可以更轻松地从命令行使用环境变量。这是参数的完整列表。如果您正在调用API,您也可以使用envVars(),但我对此没有经验。


1
除了使用环境变量外,您还可以在用户个人资料文件夹中使用flyway.conf文件,只有当前用户可以访问。如果您只访问一个数据库/服务器组合,则这是可以的。
如果您使用多个,则可以将它们作为额外的.conf文件引用到用户个人资料/用户主目录中。例如,如果您作为Windows用户正在访问Pubs数据库项目的开发分支,您可以在用户个人资料文件夹中创建一个PubsDevelop.conf文件,并通过使用命令行参数将其指定给Flyway。
flyway -configFiles="%userprofile%\PubsDevelop.conf" info 

如果您不喜欢输入命令,可以将其设置为环境变量。

FLYWAY_CONFIG_FILES=%userprofile%\PubsDevelop.conf

这样,没有人可以看到您的凭据或服务器名称,并且不会因错误而泄漏到源代码控制系统中!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接