我将ElephantSQL插件添加到我的cloudbees(?)托管服务并命名为DB。
我已经看过有关MySQL服务的文档,以及如何集成它,但对于ElephantSQL却没有。
我是否需要环境配置设置,连接字符串或什么?
在Heroku上,我使用DATABASE_URL配置变量作为我的连接字符串。
答案 0 :(得分:0)
我们建议使用BoneCP和clojure.java.jdbc
:
(ns myapp.db
(:import com.jolbox.bonecp.BoneCPDataSource)
(:import java.net.URI)
(:require [clojure.java.jdbc :as jdbc]
[clojure.string :as string]))
(def url (get (System/getenv) "ELEPHANTSQL_URL" "postgres://localhost/mydb"))
(defn pool [url]
(let [uri (URI. url)
host (.getHost uri)
port (if (pos? (.getPort uri)) (.getPort uri) 5432)
path (.getPath uri)
user-info (or (.getUserInfo uri) ":")
[user password] (string/split user-info #":")]
{:datasource
(doto (BoneCPDataSource.)
(.setJdbcUrl (str "jdbc:postgresql://" host ":" port path))
(.setPartitionCount 1)
(.setMinConnectionsPerPartition 3)
(.setMaxConnectionsPerPartition 10)
(.setUsername user)
(.setPassword password))}))
(def pooled-db (delay (pool url)))
(defn account [id]
(jdbc/query
@pooled-db
["SELECT * FROM accounts WHERE id = ?" id]))