Skip to content
Snippets Groups Projects
Commit 94efe20b authored by Cam Saül's avatar Cam Saül
Browse files

Make sure drivers get loaded at some point :yum:

parent 6e400d15
No related branches found
No related tags found
No related merge requests found
(ns metabase.driver
(:require [clojure.math.numeric-tower :as math]
(:require [clojure.java.classpath :as classpath]
[clojure.math.numeric-tower :as math]
[clojure.string :as s]
[clojure.tools.logging :as log]
[clojure.tools.namespace.find :as ns-find]
[korma.core :as k]
[medley.core :as m]
[metabase.db :refer [ins sel upd]]
......@@ -229,9 +231,17 @@
(swap! registered-drivers assoc engine driver-instance)
(log/debug (format "Registered driver %s." engine)))
(def ^:private load-driver-namespaces!
"Search the classpath for metabase driver namespaces and `require` them, so they are \"registered\" and can be used :heart_eyes_cat:"
(delay (doseq [namespce (filter (fn [ns-symb]
(re-matches #"^metabase\.driver\.[a-z0-9_]+$" (name ns-symb)))
(ns-find/find-namespaces (classpath/classpath)))]
(require namespce))))
(defn available-drivers
"Info about available drivers."
[]
@load-driver-namespaces!
(m/map-vals (fn [driver]
{:details-fields (details-fields driver)
:driver-name (name driver)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment