我正在使用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
的值由application.properties
文件提取,其中包含内容
spring.datasource.url: ${JDBC_DATABASE_URL:}
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.maximum-pool-size=10
[...]
因此,属性文件只引用另一个变量${JDBC_DATABASE_URL:}
。根据{{3}},${JDBC_DATABASE_URL:}
是在运行时生成的。在已部署的版本上,该应用程序会找出真实的"数据库网址很好,但是当我Heroku's documentation on database connections时,我收到了Hikari错误
dataSource或dataSourceClassName或jdbcUrl是必需的。
尝试访问数据库时,甚至只是从连接池获取连接。
我已经
了set DATABASE_URL=postgres://my_db_user:somePassword@localhost:5432/my_local_db_name
我需要做什么配置才能让应用在本地运行?或者更具体地说,如何让应用的本地版本具有正确的DATABASE_URL/JDBC_DATABASE_URL
值?
答案 0 :(得分:2)
不要在本地设置DATABASE_URL
,而是像这样设置JDBC_DATABASE_URL
:
JDBC_DATABASE_URL=jdbc:postgresql://localhost:5432/my_local_db_name?user=my_db_user&password=somePassword
如果您使用.env
,也可以将其放在heroku local
文件中。