August 7, 2019
By: 于壮壮
Luminus 数据库连接池配置
Luminus是通过coman来管理数据库连接的。coman是封装了HikariCP库
conman连接池的配置
(ns myapp.db
(:require [mount.core :refer [defstate]]
[conman.core :as conman]))
;;连接池配置
(def pool-spec
{:jdbc-url "jdbc:postgresql://localhost/myapp?user=user&password=pass"})
(defstate ^:dynamic *db*
:start (conman/connect! pool-spec)
:stop (conman/disconnect! *db*))
具体的配置信息可以查看hikari-cp
Luminus默认的数据库连接池的配置是在project.db.core namespace下
(defstate ^:dynamic *db*
:start (if-let [jdbc-url (env :database-url)]
(conman/connect! {:jdbc-url jdbc-url})
(do
(log/warn "database connection URL was not found, please set :database-url in your config, e.g: dev-config.edn")
*db*))
:stop (conman/disconnect! *db*))
它仅仅是是从配置文件读取了:database-url作为连接池属性:jdbc-url的值。下面是配置文件的内容:
{
:dev true
:port 3000
:nrepl-port 7000
:database-url "jdbc:log4jdbc:mysql://localhost:3306/custombackend?user=root&password=root&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Hongkong"
}
如果你需要修改连接池其他属性,这里就要小小的改动。
修改后的core.clj文件
(defstate ^:dynamic *db*
:start (if-let [pool-spec (env :database)]
(conman/connect! pool-spec)
(do
(log/warn "database connection URL was not found, please set :database-url in your config, e.g: dev-config.edn")
*db*))
:stop (conman/disconnect! *db*))
修改后的配置文件
{:dev true
:port 3000
:nrepl-port 7000
;; 数据库连接池配置属性
:database
{:jdbc-url "jdbc:log4jdbc:mysql://localhost:3306/custombackend?user=root&password=root&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Hongkong"
:maximum-pool-size 5}
}