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

3lxsmp7m  于 2022-12-21  发布在  Java
关注(0)|答案(2)|浏览(263)

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

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

正如我所知,在这样的配置文件中暴露参数是一个不好的做法。是否可以使用环境参数(创建.env文件来定义参数,并在flyway配置中接收它们?)

z4iuyo4d

z4iuyo4d1#

你应该能够传递给配置文件每一个可能的属性,包括连接和密码,这样你就不必把它们存储在配置文件中。

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

这样你就可以更容易地从命令行使用环境变量了,这是complete list of parameters,如果你调用API,你可以使用also use envVars(),但是我没有这样的经验。

g0czyy6m

g0czyy6m2#

除了使用环境变量,您还可以使用用户配置文件夹中的flyway.conf文件,只有当前用户可以访问该文件,如果您只访问一个数据库/服务器组合,这是很好的。
如果使用多个,则可以在用户配置文件/用户主目录区域中将其作为额外的.conf文件引用。例如,如果作为Windows用户访问Pubs数据库项目的开发分支,则可以在用户配置文件文件夹中创建PubsDevelop.conf文件,并使用命令行参数将其指定给Flyway

flyway -configFiles="%userprofile%\PubsDevelop.conf" info

或者,如果您不喜欢键入命令,请将其设置为环境变量

FLYWAY_CONFIG_FILES=%userprofile%\PubsDevelop.conf

这样,没有人可以看到您的凭据或服务器名称,并且没有它被错误地泄漏到源代码控制系统的风险!

相关问题