如何将ElephantSQL(Postgresql)与Clojure应用程序结合使用?
我将该插件添加到我的cloudbees(?)托管服务中,并将其命名为DB 我看过关于MySQL服务的文档,以及如何集成它,但没有看到ElephantSQL的文档 我需要环境配置设置、连接字符串还是什么如何将ElephantSQL(Postgresql)与Clojure应用程序结合使用?,postgresql,clojure,cloudbees,Postgresql,Clojure,Cloudbees,我将该插件添加到我的cloudbees(?)托管服务中,并将其命名为DB 我看过关于MySQL服务的文档,以及如何集成它,但没有看到ElephantSQL的文档 我需要环境配置设置、连接字符串还是什么 在Heroku上,我使用DATABASE_URL config变量作为连接字符串。我们建议使用BoneCP和clojure.java.jdbc: (ns myapp.db (:import com.jolbox.bonecp.BoneCPDataSource) (:import java.
在Heroku上,我使用DATABASE_URL config变量作为连接字符串。我们建议使用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]))
添加到什么中?参见上面的编辑-是这样吗?请说得更具体些。我们不知道你在做什么,也不知道你在哪里,你需要解释一下。我有一个正在运行的Clojure ring应用程序,它在本地使用Postgresql运行,也在Heroku上使用Postgresql后端运行。我想试试云蜂。我有一个免费帐户,我可以尝试通过git部署,也可以直接上传。我假设直接上传的是jar或war文件,我不确定。无论哪种方式,我都需要知道我需要在项目中做什么才能连接到我为此应用程序配置的ElephantSQL插件。