Heroku上的Dropwizard DataSourceFactory只有DATABASE_URL

时间:2015-09-21 22:18:47

标签: java postgresql heroku dropwizard dokku

我试图在heroku和dokku("开源heroku")上部署Dropwizard-app,但我仍然坚持使用数据库的配置。原因是我只提供了来自Heroku的单行连接URL:

DATABASE_URL=postgres://postgres:SOME_PASSWORD@172.17.0.1:5432/lolipop

将DataSourceFactory从此进入配置的最佳方法是什么?

import com.fasterxml.jackson.annotation.JsonProperty;
import io.dropwizard.Configuration;
import io.dropwizard.db.DataSourceFactory;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;

public class MyConfiguration extends Configuration {
    @Valid
    @NotNull
    private DataSourceFactory database = new DataSourceFactory();

    private List<String> allowedOrigins;

    @JsonProperty("database")
    public DataSourceFactory getDataSourceFactory() {
        return database;
    }

    @JsonProperty("database")
    public void setDataSourceFactory(DataSourceFactory dataSourceFactory) {
        this.database = dataSourceFactory;
    }
}

我希望配置文件看起来像这样

database:
    driverClass: org.postgresql.Driver
    url: ${DATABASE_URL}

1 个答案:

答案 0 :(得分:2)

按照Connecting to Relational Databases on Heroku with Java

中的说明尝试在Heroku上使用JDBC_DATABASE_URL

但是,如果您更愿意解析DATABASE_URL您自己(因为它是规范表示),您可以使用heroku-jdbc库。