Мы рекомендуем использовать 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, либо напрямую загружать. Я предполагаю, что прямая загрузка - это баночный или военный файл, я не уверен. В любом случае, мне нужно знать, что мне нужно сделать в проекте, чтобы подключиться к дополнению ElephantSQL, которое я подготовил для этого приложения. – jmckitrick