diff --git a/enterprise/backend/src/metabase_enterprise/serialization/cmd.clj b/enterprise/backend/src/metabase_enterprise/serialization/cmd.clj index da4c94b061f76d5d73681c94a13974af8c60441d..d6b85c013c81ada7d68c10dfe67c11d62b2378d3 100644 --- a/enterprise/backend/src/metabase_enterprise/serialization/cmd.clj +++ b/enterprise/backend/src/metabase_enterprise/serialization/cmd.clj @@ -1,6 +1,7 @@ (ns metabase-enterprise.serialization.cmd (:refer-clojure :exclude [load]) - (:require [clojure.tools.logging :as log] + (:require [clojure.string :as str] + [clojure.tools.logging :as log] [metabase-enterprise.serialization.dump :as dump] [metabase-enterprise.serialization.load :as load] [metabase-enterprise.serialization.v2.extract :as v2.extract] @@ -173,8 +174,15 @@ (dump/dump-dimensions path) (log/info (trs "END DUMP to {0} via user {1}" path user))) +(defn- v2-extract [opts] + (if (:collections opts) + (v2.extract/extract-subtrees (assoc opts :targets (for [c (str/split (:collections opts) #",")] + ["Collection" (Integer/parseInt c)]))) + (v2.extract/extract-metabase opts))) + (defn- v2-dump [path opts] - (v2.storage/store! (v2.extract/extract-metabase opts) path)) + (-> (v2-extract opts) + (v2.storage/store! path))) (defn dump "Serialized metabase instance into directory `path`."