【发布时间】:2012-11-01 11:01:15
【问题描述】:
我在 Heroku 的配置设置中解析 postgresql uri。但我似乎无法让它工作。任何帮助将不胜感激,我可能直接遗漏了一些东西。
这是使用的代码。
(def dev-db-info
{:db "dbname"
:user "username"})
(defn parse-db-uri
[uri]
(drop 1 (split uri #"://|:|@|/")))
(defn create-map-from-uri
[uri]
(let [parsed (parse-db-uri uri)]
(zipmap [:user :password :host :port :db] parsed)))
(defn db-info
[]
(if production?
(create-map-from-uri (System/getenv "DATABASE_URL"))
dev-db-info))
(defdb connected-db
(postgres (db-info)))
我从 uri 中检索到的地图如下所示:
{:db "dbname"
:port "5662"
:host "ec2-url.compute-1.amazonaws.com"
:password "pwd"
:user "username"}
我收到以下错误:
Connections could not be acquired from the underlying database!
编辑:
我已经放弃使用 Korma,转而使用 Clojure.JDBC 0.2.3,它支持“connection-uri”,因此支持 ssl 连接到数据库。 Korma 目前不支持此功能。我将在 Github 上提交问题以允许这种连接方式。
【问题讨论】:
-
有什么方法可以从底层数据库引擎获取错误消息 - 特别是 PgJDBC 引发的错误,如果你正在使用它? “连接被拒绝”或“没有用于...的 pg_hba.conf 条目”等
-
我去看看克雷格。我认为 postgres.heroku 中有一个数据库日志
-
这是日志消息 - 致命:主机“x.x.x.x”、用户“用户名”、数据库“dbname”、SSL 关闭没有 pg_hba.conf 条目
-
嗯。在非 Heroku 设置中这很简单,但我不知道 Heroku 如何管理
pg_hba.conf。不过,也许这会让你开始寻找一些东西。 -
据我发现,这似乎是在没有 SSL 的情况下连接的问题。但是我没有发现关于 Korma 上的 SSL 连接的任何信息!
标签: postgresql heroku clojure korma