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。