【发布时间】:2018-08-23 16:50:41
【问题描述】:
我正在修改“使用 Java 开始 Heroku”示例应用程序 (documentation from Heroku / source on Github),但我的本地数据库连接出现问题。
相关代码来自主类:
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 文件中提取的,该文件包含内容
spring.datasource.url: ${JDBC_DATABASE_URL:}
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.maximum-pool-size=10
[...]
所以,属性文件只是引用另一个变量${JDBC_DATABASE_URL:}。根据Heroku's documentation on database connections,${JDBC_DATABASE_URL:}是在运行时生成的。在已部署的版本上,该应用程序可以很好地计算出“真实”数据库 URL,但是当我 run locally 时,我得到了 Hikari 错误
dataSource 或 dataSourceClassName 或 jdbcUrl 是必需的。
当试图访问数据库甚至只是从连接池中获取连接时。
我已经
- 已将最新版本的 Postgres 下载到我的本地计算机
- 已验证它按预期使用端口 5432
- 在命令行使用
set DATABASE_URL=postgres://my_db_user:somePassword@localhost:5432/my_local_db_name设置DATABASE_URL环境变量
我还需要做哪些配置才能让应用在本地运行?或者更具体地说,如何让应用的本地版本具有正确的DATABASE_URL/JDBC_DATABASE_URL 值?
【问题讨论】:
-
你的操作系统是什么?
-
@clarity123 Win10
标签: java postgresql heroku