DATABASE_URL 即使在 Heroku 中设置也找不到
DATABASE_URL not found even when it is set in Heroku
大家好,我有一个带有 PostgreSQL 数据库的 heroku 网络应用程序。正如您在图片中看到的那样,DATABASE_URL
设置为:
但出于某种原因,当我尝试访问环境变量以连接到数据库时,我得到了 NullPointerException
,因为显然 DATABASE_URL
不存在:
private static Connection getConnection() throws URISyntaxException, SQLException {
URI dbUri = new URI(System.getenv("DATABASE_URL"));
String username = dbUri.getUserInfo().split(":")[0];
String password = dbUri.getUserInfo().split(":")[1];
String dbUrl = "jdbc:postgresql://" + dbUri.getHost() + ':' + dbUri.getPort() + dbUri.getPath();
return DriverManager.getConnection(dbUrl, username, password);
}
这是怎么回事?我该如何解决?
Heroku 配置变量为 environment variables。它们在特定环境中定义并应用于特定环境,在本例中是应用程序在 Heroku 上运行的环境。它们对其他环境没有影响,例如坐在您面前的机器上的环境。
您可以在本地configure NetBeans to use an environment variable for your project。这里 DATABASE_URL
的值可能与 Heroku 上的不同,只需确保将其设置为有效的 PostgreSQL URL 值即可。
对于Windows
write set DATABASE_URL=url address from Heroku
对于 macOS
export DATABASE_URL=url address from Heroku
确保你已经安装了 PostgreSQL。
大家好,我有一个带有 PostgreSQL 数据库的 heroku 网络应用程序。正如您在图片中看到的那样,DATABASE_URL
设置为:
但出于某种原因,当我尝试访问环境变量以连接到数据库时,我得到了 NullPointerException
,因为显然 DATABASE_URL
不存在:
private static Connection getConnection() throws URISyntaxException, SQLException {
URI dbUri = new URI(System.getenv("DATABASE_URL"));
String username = dbUri.getUserInfo().split(":")[0];
String password = dbUri.getUserInfo().split(":")[1];
String dbUrl = "jdbc:postgresql://" + dbUri.getHost() + ':' + dbUri.getPort() + dbUri.getPath();
return DriverManager.getConnection(dbUrl, username, password);
}
这是怎么回事?我该如何解决?
Heroku 配置变量为 environment variables。它们在特定环境中定义并应用于特定环境,在本例中是应用程序在 Heroku 上运行的环境。它们对其他环境没有影响,例如坐在您面前的机器上的环境。
您可以在本地configure NetBeans to use an environment variable for your project。这里 DATABASE_URL
的值可能与 Heroku 上的不同,只需确保将其设置为有效的 PostgreSQL URL 值即可。
对于Windows
write set DATABASE_URL=url address from Heroku
对于 macOS
export DATABASE_URL=url address from Heroku
确保你已经安装了 PostgreSQL。