首页 > 解决方案 > 使用特定的 application.properties 文件将 Spring Boot 应用程序部署到 Heroku

问题描述

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

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

我的目标是让我在 Heroku 中运行的应用程序的配置与在本地机器上运行的应用程序不同。

标签: springspring-bootherokudeployment

解决方案


spring.profiles.active您可以使用属性(文档)控制哪个配置文件处于活动状态。在 Heroku 上,您可以通过cli、仪表板平台 API使用配置变量进行设置

命令行界面

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

$ heroku config:set SPRING_PROFILES_ACTIVE=tst

仪表板

导航到settings选项卡并将键设置为SPRING_PROFILES_ACTIVE并将值设置为tst,然后单击save

平台 API

您可以使用多种工具来实现相同的结果,但是按照平台 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 会影响整个应用程序。


推荐阅读