短篇小说:
Spring Boot 究竟是如何解析 DATABASE_URL
配置变量的?在我的本地 PC 上设置同名的环境属性没有任何效果。涉及到Spring Boot库中的哪些类?在 DATABASE_URL
上进行全文搜索不会返回任何内容。
长话短说:
我最近向 Heroku 部署了一个简单的 Spring Boot + JPA 应用程序。我的 heroku 已经配置了 Postgres 附加组件。
在我的第一次部署期间,我只想确认应用程序是否正确构建和启动。但令我惊讶的是,该应用程序立即连接到在 Heroku 的 DATABASE_URL
配置变量中配置的 Postgres 数据库:
2018-11-30T09:28:51.054688+00:00 app[web.1]: 2018-11-30 09:28:51.054 INFO 4 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL95Dialect
这让我想到了上面已经发布的问题。
我正在使用 Spring boot 2.1.0.,一个由 simple app 创建的 Spring Initializr,带有 Web
+ JPA
+ H2
+ PostgreSQL
。 H2
包含在内,因为:
- 我想使用嵌入式 H2 运行单元测试
- 大多数时候,我想使用嵌入式 H2 在本地运行我的应用程序,但有时,我想切换到 Heroku 的 Postgres,以便我可以验证一些特定于数据库的内容(例如迁移)
最佳答案
Spring 不知道 DATABASE_URL
(据我所知)。但它会检测并自动使用 Heroku Java 构建包在运行时设置的 SPRING_DATASOURCE_URL
。
您可以在 Connecting to Relational Databases on Heroku with Java 上的 Heroku 文档中阅读有关此环境变量的更多信息
关于java - Spring Boot 如何知道 Heroku 的 DATABASE_URL 配置变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53555422/