herokuのClearDBの接続情報用の環境変数からclojure.jdbc用の接続情報を作る
ClearDBの接続情報は環境変数のCLEARDB_DATABASE_URLに入っているので 正規表現で各項目を抽出しmapを作る。
(def database-infos (re-find #"([a-z]*)://([0-9a-zA-Z]*):([0-9a-zA-Z]*)@(.*)/([0-9a-zA-z_]*).*" (env :cleardb-database-url))) (def mysql-db {:subprotcol (nth database-infos 1) :subname (clojure.string/join ["//" (nth database-infos 4) ":3306"]) :user (nth database-infos 2) :password (nth database-infos 3)})
うーん、いまひとつな感がある。 もっといいやり方あると思うんだけどなぁ。
2016-04-18 追記
↑みたいにパースしなくても文字列を渡せばOKですよと
id:ayato0211 あやぴーさんが教えてくれました。
(def mysql-db (env :cleardb-database-url))
これでスッキリ。
あやぴーさんありがとうございますm(_ _)m
clojure.java.jdbc - JDBC-based SQL Interface 0.6.1 API documentation
もうちょっとドキュメントちゃんと読まな・・・。