Skip to content
Snippets Groups Projects
Commit 2cb78fe7 authored by Allen Gilliland's avatar Allen Gilliland
Browse files

add data migration which sets the proper initial visibililty_type on fields.

parent 3b32ab72
Branches
Tags
No related merge requests found
......@@ -7,6 +7,7 @@
(metabase.models [activity :refer [Activity]]
[card :refer [Card]]
[database :refer [Database]]
[field :refer [Field]]
[foreign-key :refer [ForeignKey]]
[table :refer [Table]]
[setting :as setting])
......@@ -107,3 +108,30 @@
(log/debug "Removing duplicate FK entries for" k)
(doseq [duplicate-fk (drop-last fks)]
(db/del ForeignKey :id (:id duplicate-fk)))))))
;; migrate data to new visibility_type column on field
(defmigration migrate-field-visibility-type
(when (< 0 (:cnt (first (k/select Field (k/aggregate (count :*) :cnt) (k/where (= :visibility_type "unset"))))))
;; start by marking all inactive fields as :retired
(k/update Field
(k/set-fields {:visibility_type "retired"})
(k/where {:visibility_type "unset"
:active false}))
;; anything that is active with field_type = :sensitive gets visibility_type :sensitive
(k/update Field
(k/set-fields {:visibility_type "sensitive"})
(k/where {:visibility_type "unset"
:active true
:field_type "sensitive"}))
;; if field is active but preview_display = false then it becomes :details-only
(k/update Field
(k/set-fields {:visibility_type "details-only"})
(k/where {:visibility_type "unset"
:active true
:preview_display false}))
;; everything else should end up as a :normal field
(k/update Field
(k/set-fields {:visibility_type "normal"})
(k/where {:visibility_type "unset"
:active true}))))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment