如何在没有heroku CLI的情况下获取数据库URL等

时间:2017-01-12 22:40:35

标签: java postgresql heroku jdbc

我在我的Java应用程序中使用Heroku PostgreSQL并获取数据库URL,用户名,数据库名称和密码,如此

Properties props = new Properties();
props.setProperty("sslmode","require");
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("heroku config:get DATABASE_URL -a myMegaCoolApplication");
BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream()));
Pattern p = Pattern.compile("(postgres)://([^:]+):([^@]+)@(.*)");
Matcher m = p.matcher(br.readLine());
m.find();
props.setProperty("user",m.group(2));
props.setProperty("password",m.group(3));
conn = DriverManager.getConnection("jdbc:"+m.group(1)+"ql://"+m.group(4),props);

这里需要在本地计算机上安装heroku工具。我可以不用它吗?目标是能够单独发布Java jar文件,而无需用户安装heroku

1 个答案:

答案 0 :(得分:1)

您可以向Heroku Platform API发出HTTP请求,以检索应用的配置变量。

执行此操作的便捷方法是使用heroku.jar客户端库。例如

HerokuAPI api = new HerokuAPI(apiKey);
Map<String, String> config = api.listConfig("myExistingApp");
for (Map.Entry<String, String> var : config.entrySet()) {
    System.out.println(var.getKey() + "=" + var.getValue());
}