diff --git a/src/metabase/cmd/dump_to_h2.clj b/src/metabase/cmd/dump_to_h2.clj index a1f7e78630d36a6161a939839494dc755d1cafe5..9ca8cb535a8666a5c56c0a3020ba7b705ec410af 100644 --- a/src/metabase/cmd/dump_to_h2.clj +++ b/src/metabase/cmd/dump_to_h2.clj @@ -77,11 +77,16 @@ (insert-chunk! target-db-conn table-name chunk)) (println-ok)) +(def ^:private table-select-fragments + {"metabase_field" "ORDER BY id ASC"}) ; ensure ID order to ensure that parent fields are inserted before children + (defn- load-data! [target-db-conn] (println "Source db:" (dissoc (mdb/jdbc-spec) :password)) (jdbc/with-db-connection [db-conn (mdb/jdbc-spec)] (doseq [{table-name :table, :as e} entities - :let [rows (jdbc/query db-conn [(str "SELECT * FROM " (name table-name))])] + :let [fragment (table-select-fragments (str/lower-case (name table-name))) + rows (jdbc/query db-conn [(str "SELECT * FROM " (name table-name) + (when fragment (str " " fragment)))])] :when (seq rows)] (insert-entity! target-db-conn e rows))))