我有Flyway配置文件-flyway.properties,其中包含基本的数据库连接参数:
Flyway
flyway.properties
flyway.url=jdbc:mysql://localhost flyway.user=test flyway.password=test flyway.schemas=testdb
正如我所知,在这样的配置文件中暴露参数是一个不好的做法。是否可以使用环境参数(创建.env文件来定义参数,并在flyway配置中接收它们?)
.env
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(),但是我没有这样的经验。
g0czyy6m2#
除了使用环境变量,您还可以使用用户配置文件夹中的flyway.conf文件,只有当前用户可以访问该文件,如果您只访问一个数据库/服务器组合,这是很好的。如果使用多个,则可以在用户配置文件/用户主目录区域中将其作为额外的.conf文件引用。例如,如果作为Windows用户访问Pubs数据库项目的开发分支,则可以在用户配置文件文件夹中创建PubsDevelop.conf文件,并使用命令行参数将其指定给Flyway
flyway -configFiles="%userprofile%\PubsDevelop.conf" info
或者,如果您不喜欢键入命令,请将其设置为环境变量
FLYWAY_CONFIG_FILES=%userprofile%\PubsDevelop.conf
这样,没有人可以看到您的凭据或服务器名称,并且没有它被错误地泄漏到源代码控制系统的风险!
2条答案
按热度按时间z4iuyo4d1#
你应该能够传递给配置文件每一个可能的属性,包括连接和密码,这样你就不必把它们存储在配置文件中。
这样你就可以更容易地从命令行使用环境变量了,这是complete list of parameters,如果你调用API,你可以使用also use envVars(),但是我没有这样的经验。
g0czyy6m2#
除了使用环境变量,您还可以使用用户配置文件夹中的flyway.conf文件,只有当前用户可以访问该文件,如果您只访问一个数据库/服务器组合,这是很好的。
如果使用多个,则可以在用户配置文件/用户主目录区域中将其作为额外的.conf文件引用。例如,如果作为Windows用户访问Pubs数据库项目的开发分支,则可以在用户配置文件文件夹中创建PubsDevelop.conf文件,并使用命令行参数将其指定给Flyway
或者,如果您不喜欢键入命令,请将其设置为环境变量
这样,没有人可以看到您的凭据或服务器名称,并且没有它被错误地泄漏到源代码控制系统的风险!