diff --git a/project.clj b/project.clj index 890036e7ce1db63406caa74476e69293c882a488..61379b7af930b8e6200f4c2145783a5a5851fbf5 100644 --- a/project.clj +++ b/project.clj @@ -6,8 +6,7 @@ :url "http://metabase.com/" :min-lein-version "2.5.0" :aliases {"test" ["with-profile" "+expectations" "expectations"]} - :dependencies [[org.clojure/clojure "1.6.0"] - [org.clojure/core.async "LATEST"] ; facilities for async programming + communication (using 'LATEST' because this is an alpha library) + :dependencies [[org.clojure/clojure "1.7.0"] [org.clojure/core.match "0.3.0-alpha4"] ; optimized pattern matching library for Clojure [org.clojure/math.numeric-tower "0.0.4"] ; math functions like `ceil` [org.clojure/core.memoize "0.5.7"] ; needed by core.match; has useful FIFO, LRU, etc. caching mechanisms @@ -19,16 +18,15 @@ [org.clojure/tools.macro "0.1.5"] ; tools for writing macros [org.clojure/tools.namespace "0.2.10"] [org.clojure/tools.reader "0.9.2"] ; Need to explictly specify this dep otherwise expectations doesn't seem to work right :'( - [org.clojure/tools.trace "0.7.8"] ; "tracing macros/fns to help you see what your code is doing" [amalloy/ring-gzip-middleware "0.1.3"] ; Ring middleware to GZIP responses if client can handle it [cheshire "5.5.0"] ; fast JSON encoding (used by Ring JSON middleware) [clj-http-lite "0.2.1"] ; HTTP client; lightweight version of clj-http that uses HttpURLConnection instead of Apache - [clj-time "0.9.0"] ; library for dealing with date/time + [clj-time "0.10.0"] ; library for dealing with date/time [colorize "0.1.1" :exclusions [org.clojure/clojure]] ; string output with ANSI color codes (for logging) [com.cemerick/friend "0.2.1"] ; auth library [com.draines/postal "1.11.3"] ; SMTP library [com.h2database/h2 "1.4.187"] ; embedded SQL database - [com.mattbertolini/liquibase-slf4j "1.2.1"] + [com.mattbertolini/liquibase-slf4j "1.2.1"] ; Java Migrations lib [com.novemberain/monger "2.1.0"] ; MongoDB Driver [compojure "1.3.4"] ; HTTP Routing library built on Ring [environ "1.0.0"] ; easy environment management @@ -40,11 +38,11 @@ com.sun.jdmk/jmxtools com.sun.jmx/jmxri]] [medley "0.6.0"] ; lightweight lib of useful functions - [org.liquibase/liquibase-core "3.3.5"] ; migration management (Java lib) + [org.liquibase/liquibase-core "3.4.0"] ; migration management (Java lib) [org.slf4j/slf4j-log4j12 "1.7.12"] [org.yaml/snakeyaml "1.15"] ; YAML parser (required by liquibase) [postgresql "9.3-1102.jdbc41"] ; Postgres driver - [ring/ring-jetty-adapter "1.3.2"] ; Ring adapter using Jetty webserver (used to run a Ring server for unit tests) + [ring/ring-jetty-adapter "1.4.0"] ; Ring adapter using Jetty webserver (used to run a Ring server for unit tests) [ring/ring-json "0.3.1"] ; Ring middleware for reading/writing JSON automatically [swiss-arrows "1.0.0"]] ; 'Magic wand' macro -<>, etc. :plugins [[lein-environ "1.0.0"] ; easy access to environment variables @@ -62,18 +60,18 @@ :exclude-linters [:constant-test ; korma macros generate some forms with if statements that are always logically true or false :suspicious-expression]} ; core.match macros generate some forms like (and expr) which is "suspicious" :profiles {:dev {:dependencies [[org.clojure/tools.nrepl "0.2.10"] ; REPL <3 - [expectations "2.1.1"] ; unit tests + [expectations "2.1.2"] ; unit tests [marginalia "0.8.0"] ; for documentation [ring/ring-mock "0.2.0"]] - :plugins [[cider/cider-nrepl "0.9.0"] ; Interactive development w/ cider NREPL in Emacs + :plugins [[cider/cider-nrepl "0.9.1"] ; Interactive development w/ cider NREPL in Emacs [jonase/eastwood "0.2.1"] ; Linting - [lein-ancient "0.6.5"] ; Check project for outdated dependencies + plugins w/ 'lein ancient' + [lein-ancient "0.6.7"] ; Check project for outdated dependencies + plugins w/ 'lein ancient' [lein-bikeshed "0.2.0"] ; Linting [lein-environ "1.0.0"] ; Specify env-vars in project.clj [lein-expectations "0.0.8"] ; run unit tests with 'lein expectations' - [lein-instant-cheatsheet "2.1.1"] ; use awesome instant cheatsheet created by yours truly w/ 'lein instant-cheatsheet' + [lein-instant-cheatsheet "2.1.4"] ; use awesome instant cheatsheet created by yours truly w/ 'lein instant-cheatsheet' [lein-marginalia "0.8.0"] ; generate documentation with 'lein marg' - [refactor-nrepl "1.1.0-SNAPSHOT"]] ; support for advanced refactoring in Emacs/LightTable + [refactor-nrepl "1.1.0"]] ; support for advanced refactoring in Emacs/LightTable :global-vars {*warn-on-reflection* true} ; Emit warnings on all reflection calls :jvm-opts ["-Dlogfile.path=target/log" "-Xms1024m" ; give JVM a decent heap size to start with diff --git a/src/metabase/api/card.clj b/src/metabase/api/card.clj index 5957d4f801d492a7145a352a3c9eb197017687bf..2ebd40e22b447135ef501d1962eb3b50fddc47bf 100644 --- a/src/metabase/api/card.clj +++ b/src/metabase/api/card.clj @@ -1,6 +1,6 @@ (ns metabase.api.card (:require [compojure.core :refer [GET POST DELETE PUT]] - [korma.core :refer :all] + [korma.core :as k] [medley.core :refer [mapply]] [metabase.api.common :refer :all] [metabase.db :refer :all] @@ -29,9 +29,9 @@ [f] {f CardFilterOption} (-> (case (or f :all) ; default value for `f` is `:all` - :all (sel :many Card (order :name :ASC) (where (or {:creator_id *current-user-id*} - {:public_perms [> common/perms-none]}))) - :mine (sel :many Card :creator_id *current-user-id* (order :name :ASC)) + :all (sel :many Card (k/order :name :ASC) (k/where (or {:creator_id *current-user-id*} + {:public_perms [> common/perms-none]}))) + :mine (sel :many Card :creator_id *current-user-id* (k/order :name :ASC)) :fav (->> (-> (sel :many [CardFavorite :card_id] :owner_id *current-user-id*) (hydrate :card)) (map :card) diff --git a/src/metabase/api/common.clj b/src/metabase/api/common.clj index 8edb69b6bd6778c231300846daff1ebd2ba5395f..6933e7efab44cc16b331a931ca7dea3dd045c56b 100644 --- a/src/metabase/api/common.clj +++ b/src/metabase/api/common.clj @@ -3,8 +3,8 @@ (:require [clojure.tools.logging :as log] [cheshire.core :as json] [compojure.core :refer [defroutes]] - [korma.core :refer :all :exclude [update]] - [medley.core :refer :all] + [korma.core :as k] + [medley.core :as m] [metabase.api.common.internal :refer :all] [metabase.db :refer :all] [metabase.db.internal :refer [entity->korma]] @@ -327,7 +327,7 @@ (defannotation Boolean "Param must be a boolean (this does *not* cast the param)." [symb value :nillable] - (checkp-with boolean? symb value "value must be a boolean.")) + (checkp-with m/boolean? symb value "value must be a boolean.")) (defannotation Dict "Param must be a dictionary (this does *not* cast the param)." @@ -406,7 +406,7 @@ `defendpoint` in the current namespace." [& additional-routes] (let [api-routes (->> (ns-publics *ns*) - (filter-vals #(:is-endpoint? (meta %))) + (m/filter-vals #(:is-endpoint? (meta %))) (map first))] `(defroutes ~'routes ~@api-routes ~@additional-routes))) diff --git a/src/metabase/api/dash.clj b/src/metabase/api/dash.clj index a05a07715a72c1ae08052087fcd3df0ed28bbcfc..cd988aa3cd09a9fc17f8e4b524654f68fee7a469 100644 --- a/src/metabase/api/dash.clj +++ b/src/metabase/api/dash.clj @@ -1,7 +1,7 @@ (ns metabase.api.dash "/api/dash endpoints." (:require [compojure.core :refer [GET POST PUT DELETE]] - [korma.core :refer :all] + [korma.core :as k] [metabase.api.common :refer :all] [metabase.db :refer :all] (metabase.models [hydrate :refer [hydrate]] @@ -18,8 +18,8 @@ [f] {f FilterOptionAllOrMine} (-> (case (or f :all) - :all (sel :many Dashboard (where (or {:creator_id *current-user-id*} - {:public_perms [> common/perms-none]}))) + :all (sel :many Dashboard (k/where (or {:creator_id *current-user-id*} + {:public_perms [> common/perms-none]}))) :mine (sel :many Dashboard :creator_id *current-user-id*)) (hydrate :creator))) diff --git a/src/metabase/api/meta/db.clj b/src/metabase/api/meta/db.clj index 2f9d7b0445610260907b868c6464c109cacb87f4..4446582d168fcb80d2d967c1db874d9da870de08 100644 --- a/src/metabase/api/meta/db.clj +++ b/src/metabase/api/meta/db.clj @@ -1,7 +1,7 @@ (ns metabase.api.meta.db "/api/meta/db endpoints." (:require [compojure.core :refer [GET POST PUT DELETE]] - [korma.core :refer :all] + [korma.core :as k] [metabase.api.common :refer :all] [metabase.db :refer :all] [metabase.driver :as driver] @@ -20,7 +20,7 @@ (defendpoint GET "/" "Fetch all `Databases`." [] - (sel :many Database (order :name))) + (sel :many Database (k/order :name))) (defendpoint POST "/" "Add a new `Database`." @@ -112,7 +112,7 @@ "Get a list of all `Tables` in `Database`." [id] (read-check Database id) - (-> (sel :many Table :db_id id :active true (order :name)) + (-> (sel :many Table :db_id id :active true (k/order :name)) (hydrate :human_readable_name))) (defendpoint GET "/:id/idfields" diff --git a/src/metabase/api/meta/table.clj b/src/metabase/api/meta/table.clj index 7df3b7f232970f0548e74b3845db1bb6b54760cb..75454212953aa24d55eda2f40a017d4a3dc56aab 100644 --- a/src/metabase/api/meta/table.clj +++ b/src/metabase/api/meta/table.clj @@ -1,7 +1,7 @@ (ns metabase.api.meta.table "/api/meta/table endpoints." (:require [compojure.core :refer [GET POST PUT]] - [korma.core :refer :all] + [korma.core :as k] [metabase.api.common :refer :all] [metabase.db :refer :all] (metabase.models [hydrate :refer :all] @@ -19,7 +19,7 @@ (defendpoint GET "/" "Get all `Tables`." [] - (-> (sel :many Table :active true (order :name :ASC)) + (-> (sel :many Table :active true (k/order :name :ASC)) (hydrate :db :human_readable_name) ;; if for some reason a Table doesn't have rows set then set it to 0 so UI doesn't barf (#(map (fn [table] @@ -49,7 +49,7 @@ "Get all `Fields` for `Table` with ID." [id] (read-check Table id) - (-> (sel :many Field :table_id id, :active true, :field_type [not= "sensitive"], (order :name :ASC)) + (-> (sel :many Field :table_id id, :active true, :field_type [not= "sensitive"], (k/order :name :ASC)) (hydrate :human_readable_name))) (defendpoint GET "/:id/query_metadata" diff --git a/src/metabase/driver.clj b/src/metabase/driver.clj index b00dc02355638ae0d3c06384581e38f3e52ab4bb..c9d0ccb2a9cf7b5d963dfc1d459159cd0d6c9c40 100644 --- a/src/metabase/driver.clj +++ b/src/metabase/driver.clj @@ -1,7 +1,7 @@ (ns metabase.driver (:require clojure.java.classpath [clojure.tools.logging :as log] - [medley.core :refer :all] + [medley.core :as m] [metabase.db :refer [exists? ins sel upd]] (metabase.driver [interface :as i] [query-processor :as qp]) @@ -227,7 +227,7 @@ (if id ;; execution has already been saved, so update it (do - (mapply upd QueryExecution id query-execution) + (m/mapply upd QueryExecution id query-execution) query-execution) ;; first time saving execution, so insert it - (mapply ins QueryExecution query-execution))) + (m/mapply ins QueryExecution query-execution))) diff --git a/src/metabase/driver/generic_sql.clj b/src/metabase/driver/generic_sql.clj index f281f15ed2d77176f21be958cd714be6afb6150c..ec1f6a76d278e93876c9fa97209d208e84bce746 100644 --- a/src/metabase/driver/generic_sql.clj +++ b/src/metabase/driver/generic_sql.clj @@ -1,7 +1,7 @@ (ns metabase.driver.generic-sql (:require [clojure.java.jdbc :as jdbc] [clojure.tools.logging :as log] - [korma.core :refer :all] + [korma.core :as k] [metabase.driver :as driver] (metabase.driver [interface :refer :all] [sync :as driver-sync]) @@ -14,7 +14,7 @@ :standard-deviation-aggregations :unix-timestamp-special-type-fields}) -(defrecord SqlDriver [;; A set of additional features supported by a specific driver implmentation, e.g. :set-timezone for :postgres +(defrecord SqlDriver [ ;; A set of additional features supported by a specific driver implmentation, e.g. :set-timezone for :postgres additional-supported-features column->base-type connection-details->connection-spec @@ -39,7 +39,7 @@ (can-connect-with-details? [_ details] (let [connection (connection-details->connection-spec details)] - (= 1 (-> (exec-raw connection "SELECT 1" :results) + (= 1 (-> (k/exec-raw connection "SELECT 1" :results) first vals first)))) @@ -47,7 +47,7 @@ ;; Query Processing (wrap-process-query-middleware [_ qp] (fn [query] - (qp query))) ; Nothing to do here + (qp query))) ; Nothing to do here (process-query [_ query] (qp/process-and-run query)) @@ -95,9 +95,9 @@ ISyncDriverFieldAvgLength (field-avg-length [_ field] (or (some-> (korma-entity @(:table field)) - (select (aggregate (avg (sqlfn* sql-string-length-fn - (raw (format "CAST(\"%s\" AS TEXT)" (name (:name field)))))) - :len)) + (k/select (k/aggregate (avg (k/sqlfn* sql-string-length-fn + (k/raw (format "CAST(\"%s\" AS TEXT)" (name (:name field)))))) + :len)) first :len int) @@ -106,12 +106,12 @@ ISyncDriverFieldPercentUrls (field-percent-urls [_ field] (let [korma-table (korma-entity @(:table field)) - total-non-null-count (-> (select korma-table - (aggregate (count :*) :count) - (where {(keyword (:name field)) [not= nil]})) first :count)] + total-non-null-count (-> (k/select korma-table + (k/aggregate (count :*) :count) + (k/where {(keyword (:name field)) [not= nil]})) first :count)] (if (= total-non-null-count 0) 0.0 - (let [url-count (or (-> (select korma-table - (aggregate (count :*) :count) - (where {(keyword (:name field)) [like "http%://_%.__%"]})) first :count) + (let [url-count (or (-> (k/select korma-table + (k/aggregate (count :*) :count) + (k/where {(keyword (:name field)) [like "http%://_%.__%"]})) first :count) 0)] (float (/ url-count total-non-null-count))))))) diff --git a/src/metabase/driver/generic_sql/query_processor.clj b/src/metabase/driver/generic_sql/query_processor.clj index d3e704c4769be4b367f8ee05e0b8f21a7ea2b208..44d502a53e9ba87a5631cd11ea005ac66f49457f 100644 --- a/src/metabase/driver/generic_sql/query_processor.clj +++ b/src/metabase/driver/generic_sql/query_processor.clj @@ -4,7 +4,7 @@ [clojure.tools.logging :as log] [clojure.string :as s] [clojure.walk :as walk] - [korma.core :refer :all] + [korma.core :refer :all, :exclude [update]] [metabase.config :as config] [metabase.driver.query-processor :as qp] (metabase.driver.generic-sql [native :as native] diff --git a/src/metabase/models/card.clj b/src/metabase/models/card.clj index 6c7cab212ede0c778340b28342a7199c99e9f829..64af94fdef8d44a6c57f418602ff6c6803399207 100644 --- a/src/metabase/models/card.clj +++ b/src/metabase/models/card.clj @@ -1,5 +1,5 @@ (ns metabase.models.card - (:require [korma.core :refer :all, :exclude [defentity]] + (:require [korma.core :refer :all, :exclude [defentity update]] [metabase.api.common :refer [*current-user-id*]] [metabase.db :refer :all] (metabase.models [interface :refer :all] diff --git a/src/metabase/models/card_favorite.clj b/src/metabase/models/card_favorite.clj index 5a38052192143f40234a96453ccd904191937a5b..df0d592264c5e347747598ef3299898bbb603ed5 100644 --- a/src/metabase/models/card_favorite.clj +++ b/src/metabase/models/card_favorite.clj @@ -1,5 +1,5 @@ (ns metabase.models.card-favorite - (:require [korma.core :refer :all, :exclude [defentity]] + (:require [korma.core :refer :all, :exclude [defentity update]] [metabase.db :refer :all] (metabase.models [card :refer [Card]] [interface :refer :all] diff --git a/src/metabase/models/dashboard.clj b/src/metabase/models/dashboard.clj index bfc98e747951d914544cc4113842fdd80992fe5c..253e8e840fc9d1a389fc2c4119ee6adf8747ee74 100644 --- a/src/metabase/models/dashboard.clj +++ b/src/metabase/models/dashboard.clj @@ -1,5 +1,5 @@ (ns metabase.models.dashboard - (:require [korma.core :refer :all, :exclude [defentity]] + (:require [korma.core :refer :all, :exclude [defentity update]] [metabase.db :refer :all] (metabase.models [common :refer :all] [dashboard-card :refer [DashboardCard]] diff --git a/src/metabase/models/dashboard_card.clj b/src/metabase/models/dashboard_card.clj index 57fb7d21b5c26da252255a0d8212f957f734d49f..3b4fd9ea74933b838c1f0c3907e52e6bca49a40a 100644 --- a/src/metabase/models/dashboard_card.clj +++ b/src/metabase/models/dashboard_card.clj @@ -1,6 +1,6 @@ (ns metabase.models.dashboard-card (:require [clojure.set :as set] - [korma.core :refer :all, :exclude [defentity]] + [korma.core :refer :all, :exclude [defentity update]] [metabase.db :refer :all] (metabase.models [card :refer [Card]] [interface :refer :all]))) diff --git a/src/metabase/models/database.clj b/src/metabase/models/database.clj index 1683ae7ed6024d269bb494cebbd57b9d031439af..f757f81b5316d51a52c5dc4db7c0058ad1617c94 100644 --- a/src/metabase/models/database.clj +++ b/src/metabase/models/database.clj @@ -1,5 +1,5 @@ (ns metabase.models.database - (:require [korma.core :refer :all, :exclude [defentity]] + (:require [korma.core :refer :all, :exclude [defentity update]] [metabase.api.common :refer [*current-user*]] [metabase.db :refer :all] [metabase.models.interface :refer :all])) diff --git a/src/metabase/models/field.clj b/src/metabase/models/field.clj index 3155fbde6121047c25bf89de8e96c6f1f907d24b..3020be043ba15e916e7f7efb2da2b4a8a602039b 100644 --- a/src/metabase/models/field.clj +++ b/src/metabase/models/field.clj @@ -1,5 +1,5 @@ (ns metabase.models.field - (:require [korma.core :refer :all, :exclude [defentity]] + (:require [korma.core :refer :all, :exclude [defentity update]] [metabase.api.common :refer [check]] [metabase.db :refer :all] (metabase.models [common :as common] diff --git a/src/metabase/models/field_values.clj b/src/metabase/models/field_values.clj index 4792b0151efcf59e38212d10a5d6152a5560922b..92f5e4246f6947657d6def641ba20dbc5e6ae885 100644 --- a/src/metabase/models/field_values.clj +++ b/src/metabase/models/field_values.clj @@ -1,6 +1,6 @@ (ns metabase.models.field-values (:require [clojure.tools.logging :as log] - [korma.core :refer :all, :exclude [defentity]] + [korma.core :refer :all, :exclude [defentity update]] (metabase [db :refer :all] [util :as u]) [metabase.models.interface :refer :all])) diff --git a/src/metabase/models/foreign_key.clj b/src/metabase/models/foreign_key.clj index 05b4ad25446fc001686e5831b80102b0e746e6a6..a99f0483aa9aa710e61419be6ae153b4f6c0ad74 100644 --- a/src/metabase/models/foreign_key.clj +++ b/src/metabase/models/foreign_key.clj @@ -1,5 +1,5 @@ (ns metabase.models.foreign-key - (:require [korma.core :refer :all, :exclude [defentity]] + (:require [korma.core :refer :all, :exclude [defentity update]] [metabase.db :refer :all] [metabase.models.interface :refer :all])) diff --git a/src/metabase/models/query_execution.clj b/src/metabase/models/query_execution.clj index 0599fa0977c9691e97f5c7ddf111f1d739d3d6a5..6384bfef0629de26078f249b02744cd679b7aef8 100644 --- a/src/metabase/models/query_execution.clj +++ b/src/metabase/models/query_execution.clj @@ -1,5 +1,5 @@ (ns metabase.models.query-execution - (:require [korma.core :refer :all, :exclude [defentity]] + (:require [korma.core :refer :all, :exclude [defentity update]] [metabase.api.common :refer [check]] [metabase.db :refer :all] (metabase.models [common :refer :all] diff --git a/src/metabase/models/session.clj b/src/metabase/models/session.clj index 877890cdf09664e0b00992e6db4c63bfd0fa27aa..ba533264261d5de956c4ba3435715ebf3164856f 100644 --- a/src/metabase/models/session.clj +++ b/src/metabase/models/session.clj @@ -1,5 +1,5 @@ (ns metabase.models.session - (:require [korma.core :refer :all, :exclude [defentity]] + (:require [korma.core :refer :all, :exclude [defentity update]] [metabase.db :refer :all] (metabase.models [common :refer :all] [interface :refer :all] diff --git a/src/metabase/models/setting.clj b/src/metabase/models/setting.clj index e96a2238a189f3eccbc33707bfa9abada8b4278a..905aea20d8886be3b970798532261bf9a04ba70b 100644 --- a/src/metabase/models/setting.clj +++ b/src/metabase/models/setting.clj @@ -3,7 +3,7 @@ (:require [clojure.core.match :refer [match]] [clojure.string :as s] [environ.core :as env] - [korma.core :refer :all :exclude [defentity delete]] + [korma.core :as k] [metabase.db :refer [sel del]] [metabase.models.interface :refer :all])) @@ -67,12 +67,12 @@ [k v] {:pre [(keyword? k) (string? v)]} - (if (get k) (update Setting - (set-fields {:value v}) - (where {:key (name k)})) - (insert Setting - (values {:key (name k) - :value v}))) + (if (get k) (k/update Setting + (k/set-fields {:value v}) + (k/where {:key (name k)})) + (k/insert Setting + (k/values {:key (name k) + :value v}))) (restore-cache-if-needed) (swap! cached-setting->value assoc k v) v) @@ -158,7 +158,7 @@ (atom nil)) (defentity Setting - [(table :setting)]) + [(k/table :setting)]) (defn- settings-list "Return a list of all Settings (as created with `defsetting`)." @@ -169,10 +169,10 @@ (map meta) (filter ::is-setting?) (map (fn [{k :name desc :doc default ::default-value}] - {:key (keyword k) + {:key (keyword k) :description desc - :default (or (when (get-from-env-var k) - (format "Using $MB_%s" (-> (name k) - (s/replace "-" "_") - s/upper-case))) - default)})))) + :default (or (when (get-from-env-var k) + (format "Using $MB_%s" (-> (name k) + (s/replace "-" "_") + s/upper-case))) + default)})))) diff --git a/src/metabase/models/table.clj b/src/metabase/models/table.clj index f4a60161dd84d39b43de7fe5df03fa4edda845c9..c2221e789eba2e883901e6f25711df212034e3dc 100644 --- a/src/metabase/models/table.clj +++ b/src/metabase/models/table.clj @@ -1,5 +1,5 @@ (ns metabase.models.table - (:require [korma.core :refer :all, :exclude [defentity]] + (:require [korma.core :refer :all, :exclude [defentity update]] [metabase.db :refer :all] (metabase.models [common :as common] [database :as db] diff --git a/src/metabase/models/user.clj b/src/metabase/models/user.clj index 612aada390cb502664b9b97609b4636fc5821829..3d00550bdd54496b8600ba7a4ee19adbf9db4ee7 100644 --- a/src/metabase/models/user.clj +++ b/src/metabase/models/user.clj @@ -1,6 +1,6 @@ (ns metabase.models.user (:require [cemerick.friend.credentials :as creds] - [korma.core :refer :all, :exclude [defentity]] + [korma.core :refer :all, :exclude [defentity update]] [metabase.db :refer :all] [metabase.email.messages :as email] [metabase.models.interface :refer :all]