我正在修改“使用Java开始使用Heroku”示例应用程序(Heroku的文件 / 资料来源: 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关于数据库连接的文档,${JDBC_DATABASE_URL:}是在运行时生成的。在部署的版本上,应用程序很好地计算出“真实”DB,但是当我在本地运行时,我得到了Hikari错误
dataSource或dataSourceClassName或jdbcUrl是必需的。
当尝试访问DB时,甚至只是从连接池获得一个连接。
我已经
set DATABASE_URL=postgres://my_db_user:somePassword@localhost:5432/my_local_db_name环境变量我还需要做什么配置才能让应用程序在本地运行?或者更具体地说,如何使应用程序的本地版本具有正确的DATABASE_URL/JDBC_DATABASE_URL值?
发布于 2018-03-15 01:37:05
与其在本地设置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文件中。
https://stackoverflow.com/questions/49289928
复制相似问题