使用特定的application.properties文件将Spring Boot应用程序部署到Heroku

时间:2019-05-04 16:54:18

标签: spring spring-boot heroku deployment

我想为每个环境定义不同的application.properties文件。 在本地工作时,我想定义一个H2数据库。对于测试环境(Heroku),我有一个MySQL数据库配置。因此,我想为这种工作情况定义完全不同的文件。

目前,我有application.properties个地方性海豚,还有application-tst.properties个在Heroku中使用。但是我不知道如何在部署时选择合适的。

我的目标是为在Heroku中运行的应用程序配置与在本地计算机中运行的应用程序配置不同。

1 个答案:

答案 0 :(得分:2)

您可以使用spring.profiles.active属性(documentation)控制哪个配置文件处于活动状态。在Heroku上,您可以通过the cli, the dashboardplatform API

使用配置变量进行设置

CLI

要使用cli设置tst配置文件,请尝试

$ heroku config:set SPRING_PROFILES_ACTIVE=tst

仪表板

导航至settings标签,并将密钥设置为SPRING_PROFILES_ACTIVE,将值设置为tst,然后单击save

平台API

您可以使用多种工具来获得相同的结果,但是按照Platform API文档,您可以使用curl

$ curl -n -X PATCH https://api.heroku.com/apps/$APP_ID_OR_NAME/config-vars \
  -d '{ "SPRING_PROFILES_ACTIVE": "tst" }' \
  -H "Content-Type: application/json" \
  -H "Accept: application/vnd.heroku+json; version=3"

请注意,尽管将spring.profiles.active属性设置为config var会影响整个应用程序。