diff --git a/.gitignore b/.gitignore index 801e831b7a8f2c45073aa139c5c787e1fd709de5..6f7cabca03b91fd95916e64836c1ac51eb207927 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ pom.xml.asc .hg/ .idea/ /docs +profiles.clj diff --git a/project.clj b/project.clj index 40a129d46750227d64e44885fc11c11d1e81e3ac..c931c3d80f83f9709fb1cf6aeda3520bf0a780fd 100644 --- a/project.clj +++ b/project.clj @@ -13,6 +13,7 @@ javax.jms/jms com.sun.jdmk/jmxtools com.sun.jmx/jmxri]] + [com.h2database/h2 "1.3.170"] ; embedded SQL database [korma "0.4.0"] ; SQL lib ] :plugins [[cider/cider-nrepl "0.8.2"] ; Interactive development w/ cider NREPL in Emacs diff --git a/src/metabase/config.clj b/src/metabase/config.clj new file mode 100644 index 0000000000000000000000000000000000000000..19d404218aec400f3628f4adabdbf159de379ad8 --- /dev/null +++ b/src/metabase/config.clj @@ -0,0 +1,5 @@ +(ns metabase.config) + +(def app-defaults + "Global application defaults" + {:database-file "metabase.db"}) \ No newline at end of file diff --git a/src/metabase/db.clj b/src/metabase/db.clj new file mode 100644 index 0000000000000000000000000000000000000000..5bcafbb1eef9ab036682a8876558744da51b2cda --- /dev/null +++ b/src/metabase/db.clj @@ -0,0 +1,17 @@ +(ns metabase.db + (:require [clojure.tools.logging :as log] + [environ.core :refer [env]] + [korma.core :refer :all] + [korma.db :refer :all] + [metabase.config :refer [app-defaults]])) + + +(defn get-db-file + "Check config/environment to determine the path to the h2 db file we want to use" + [] + (or (env :database-file) (get app-defaults :database-file))) + + +(defdb db (do + (log/info (str "Using H2 database file: " (get-db-file))) + (h2 {:db (get-db-file)}))) diff --git a/test/metabase/core_test.clj b/test/metabase/core_test.clj deleted file mode 100644 index b8577ecba8c795d893ff98ef2cd397bc4e519b6d..0000000000000000000000000000000000000000 --- a/test/metabase/core_test.clj +++ /dev/null @@ -1,19 +0,0 @@ -(ns metabase.core-test - (:use midje.sweet) - (:use [metabase.core]) - (:require [clojure.tools.logging :as log])) - -(println "You should expect to see three failures below.") -(log/info "testing out this logging") - -(facts "about `first-element`" - (fact "it normally returns the first element" - (first-element [1 2 3] :default) => 1 - (first-element '(1 2 3) :default) => 1) - - ;; I'm a little unsure how Clojure types map onto the Lisp I'm used to. - (fact "default value is returned for empty sequences" - (first-element [] :default) => :default - (first-element '() :default) => :default - (first-element nil :default) => :default - (first-element (filter even? [1 3 5]) :default) => :default))