From 73bc209af1f4e898bf4043787990e167a243656d Mon Sep 17 00:00:00 2001
From: Cam Saul <cammsaul@gmail.com>
Date: Thu, 8 Mar 2018 18:34:40 -0800
Subject: [PATCH] Add `lein run refresh-integration-test-db-metadata` cmd &
 update metadata

---
 .gitignore                                    |   3 +-
 .../test/__runner__/test_db_fixture.db.h2.db  | Bin 5242880 -> 1048576 bytes
 src/metabase/cmd.clj                          |   8 +++-
 .../refresh_integration_test_db_metadata.clj  |  41 ++++++++++++++++++
 4 files changed, 50 insertions(+), 2 deletions(-)
 create mode 100644 src/metabase/cmd/refresh_integration_test_db_metadata.clj

diff --git a/.gitignore b/.gitignore
index a45c2e8a816..f82f949b170 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,4 +52,5 @@ bin/release/aws-eb/metabase-aws-eb.zip
 coverage-summary.json
 .DS_Store
 bin/node_modules/
-*.log
\ No newline at end of file
+*.log
+*.trace.db
diff --git a/frontend/test/__runner__/test_db_fixture.db.h2.db b/frontend/test/__runner__/test_db_fixture.db.h2.db
index 66876709fb7c85c5d9f9dbd49d36cadd87dccce6..63c055fc2f3b22ff86205785a80e70d60c6ab571 100644
GIT binary patch
delta 3940
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

delta 44517
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
Nz^6F^XXd7w{|$GJ_Tc~k

diff --git a/src/metabase/cmd.clj b/src/metabase/cmd.clj
index 92a17ce113c..0efcf920bfa 100644
--- a/src/metabase/cmd.clj
+++ b/src/metabase/cmd.clj
@@ -40,7 +40,7 @@
   []
   ;; override env var that would normally make Jetty block forever
   (require 'environ.core)
-  (intern 'environ.core 'env (assoc environ.core/env :mb-jetty-join "false"))
+  (intern 'environ.core 'env (assoc @(resolve 'environ.core/env) :mb-jetty-join "false"))
   (u/profile "start-normally" ((resolve 'metabase.core/start-normally))))
 
 (defn ^:command reset-password
@@ -49,6 +49,12 @@
   (require 'metabase.cmd.reset-password)
   ((resolve 'metabase.cmd.reset-password/reset-password!) email-address))
 
+(defn ^:command refresh-integration-test-db-metadata
+  "Re-sync the frontend integration test DB's metadata for the Sample Dataset."
+  []
+  (require 'metabase.cmd.refresh-integration-test-db-metadata)
+  ((resolve 'metabase.cmd.refresh-integration-test-db-metadata/refresh-integration-test-db-metadata)))
+
 (defn ^:command help
   "Show this help message listing valid Metabase commands."
   []
diff --git a/src/metabase/cmd/refresh_integration_test_db_metadata.clj b/src/metabase/cmd/refresh_integration_test_db_metadata.clj
new file mode 100644
index 00000000000..7cfd8c45ff5
--- /dev/null
+++ b/src/metabase/cmd/refresh_integration_test_db_metadata.clj
@@ -0,0 +1,41 @@
+(ns metabase.cmd.refresh-integration-test-db-metadata
+  (:require [clojure.java.io :as io]
+            [environ.core :refer [env]]
+            [metabase
+             [db :as mdb]
+             [util :as u]]
+            [metabase.models
+             [database :refer [Database]]
+             [field :refer [Field]]
+             [table :refer [Table]]]
+            [metabase.sample-data :as sample-data]
+            [metabase.sync :as sync]
+            [toucan.db :as db]))
+
+(defn- test-fixture-db-path
+  "Get the path to the test fixture DB that we'll use for `MB_DB_FILE`. Throw an Exception if the file doesn't exist."
+  []
+  (let [path (str (System/getProperty "user.dir") "/frontend/test/__runner__/test_db_fixture.db")]
+    (when-not (or (.exists (io/file (str path ".h2.db")))
+                  (.exists (io/file (str path ".mv.db"))))
+      (throw (Exception. (str "Could not find frontend integration test DB at path: " path ".h2.db (or .mv.db)"))))
+    path))
+
+(defn ^:command refresh-integration-test-db-metadata
+  "Re-sync the frontend integration test DB's metadata for the Sample Dataset."
+  []
+  (let [db-path (test-fixture-db-path)]
+    ;; now set the path at MB_DB_FILE
+    (intern 'environ.core 'env (assoc env :mb-db-type "h2", :mb-db-file db-path))
+    ;; set up the DB, make sure sample dataset is added
+    (mdb/setup-db!)
+    (sample-data/add-sample-dataset!)
+    (sample-data/update-sample-dataset-if-needed!)
+    ;; clear out all Fingerprints so we force analysis to run again. Clear out special type and has_field_values as
+    ;; well so we can be sure those will be set to the correct values
+    (db/debug-print-queries
+      (db/update! Field {:set {:fingerprint_version 0, :special_type nil, :has_field_values nil}}))
+    ;; now re-run sync
+    (sync/sync-database! (Database :is_sample true))
+    ;; done!
+    (println "Finished.")))
-- 
GitLab