首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Heroku应用程序的本地版本配置数据库访问

为Heroku应用程序的本地版本配置数据库访问
EN

Stack Overflow用户
提问于 2018-03-15 00:55:39
回答 1查看 488关注 0票数 2

我正在修改“使用Java开始使用Heroku”示例应用程序(Heroku的文件 / 资料来源: Github),并且我的本地数据库连接有问题。

相关代码来自主类:

代码语言:javascript
复制
public class Main {
    @Value("${spring.datasource.url}")
    private String dbUrl;

[...]

    @Bean
    public DataSource dataSource() throws SQLException {
        if (dbUrl == null || dbUrl.isEmpty()) {
            return new HikariDataSource();
        } else {
            HikariConfig config = new HikariConfig();
            config.setJdbcUrl(dbUrl);
            return new HikariDataSource(config);
        }
    }

dbUrl的值由Spring从包含内容的application.properties文件中提取

代码语言:javascript
复制
spring.datasource.url: ${JDBC_DATABASE_URL:}
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.maximum-pool-size=10

[...]

因此,属性文件只引用另一个变量${JDBC_DATABASE_URL:}。根据Heroku关于数据库连接的文档${JDBC_DATABASE_URL:}是在运行时生成的。在部署的版本上,应用程序很好地计算出“真实”DB,但是当我在本地运行时,我得到了Hikari错误

dataSource或dataSourceClassName或jdbcUrl是必需的。

当尝试访问DB时,甚至只是从连接池获得一个连接。

我已经

  • 将Postgres的最新版本下载到我的本地计算机上
  • 验证它按预期使用端口5432
  • 使用DATABASE_URL在命令行上设置set DATABASE_URL=postgres://my_db_user:somePassword@localhost:5432/my_local_db_name环境变量

我还需要做什么配置才能让应用程序在本地运行?或者更具体地说,如何使应用程序的本地版本具有正确的DATABASE_URL/JDBC_DATABASE_URL值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-15 01:37:05

与其在本地设置DATABASE_URL,不如按以下方式设置JDBC_DATABASE_URL

代码语言:javascript
复制
JDBC_DATABASE_URL=jdbc:postgresql://localhost:5432/my_local_db_name?user=my_db_user&password=somePassword

如果使用的是.env文件,也可以将其放入heroku local文件中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49289928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档