Skip to content
Snippets Groups Projects
Unverified Commit 6da08bfa authored by Cal Herries's avatar Cal Herries Committed by GitHub
Browse files

Add migration to remove FK target fields for previously inactive fields (#35531)

parent 704d45bf
Branches
Tags
No related merge requests found
......@@ -16027,6 +16027,33 @@ databaseChangeLog:
- sql: DELETE FROM metabase_database WHERE is_audit = TRUE;
- sql: DELETE FROM collection WHERE type = 'instance_analytics';
 
- changeSet:
id: v48.00-051
author: calherries
comment: Migrate metabase_field when the fk target field is inactive
changes:
- sql:
dbms: mariadb,mysql
sql: >-
UPDATE metabase_field AS a
JOIN metabase_field AS b ON b.id = a.fk_target_field_id
SET a.fk_target_field_id = NULL,
a.semantic_type = NULL
WHERE b.active = FALSE;
- sql:
dbms: postgresql,h2
sql: >-
UPDATE metabase_field
SET fk_target_field_id = NULL,
semantic_type = NULL
WHERE fk_target_field_id IN (
SELECT id
FROM metabase_field
WHERE active = FALSE
);
rollback: # no change
# >>>>>>>>>> DO NOT ADD NEW MIGRATIONS BELOW THIS LINE! ADD THEM ABOVE <<<<<<<<<<
 
########################################################################################################################
......
......@@ -799,17 +799,17 @@
:updated_at :%now
:active true}))
field-1-id (first (t2/insert-returning-pks! (t2/table-name Field) {:name "F1"
:table_id table-id
:base_type "type/Text"
:database_type "TEXT"
:created_at :%now
:updated_at :%now}))
:table_id table-id
:base_type "type/Text"
:database_type "TEXT"
:created_at :%now
:updated_at :%now}))
field-2-id (first (t2/insert-returning-pks! (t2/table-name Field) {:name "F2"
:table_id table-id
:base_type "type/Text"
:database_type "TEXT"
:created_at :%now
:updated_at :%now}))
:table_id table-id
:base_type "type/Text"
:database_type "TEXT"
:created_at :%now
:updated_at :%now}))
_ (t2/insert! (t2/table-name Dimension) {:field_id field-1-id
:name "F1 D1"
:type "internal"
......@@ -1299,6 +1299,44 @@
:table_id 6}}
(t2/select-one :model/AuditLog)))))))))
(deftest inactive-fields-fk-migration-test
(testing "Migration v48.00-051"
(impl/test-migrations ["v48.00-051"] [migrate!]
(let [database-id (first (t2/insert-returning-pks! (t2/table-name Database) {:details "{}"
:engine "h2"
:is_sample false
:name "populate-collection-created-at-test-db"}))
table-1-id (first (t2/insert-returning-pks! (t2/table-name Table) {:db_id database-id
:name "Table 1"
:created_at :%now
:updated_at :%now
:active true}))
table-2-id (first (t2/insert-returning-pks! (t2/table-name Table) {:db_id database-id
:name "Table 2"
:created_at :%now
:updated_at :%now
:active true}))
field-1-id (first (t2/insert-returning-pks! (t2/table-name Field) {:name "F1"
:table_id table-1-id
:base_type "type/Text"
:database_type "TEXT"
:created_at :%now
:updated_at :%now
:active false}))
field-2-id (first (t2/insert-returning-pks! (t2/table-name Field) {:name "F2"
:table_id table-2-id
:base_type "type/Text"
:database_type "TEXT"
:created_at :%now
:updated_at :%now
:active true
:fk_target_field_id field-1-id
:semantic_type "type/FK"}))]
(migrate!)
(is (=? {:fk_target_field_id nil
:semantic_type nil}
(t2/select-one (t2/table-name :model/Field) :id field-2-id)))))))
(deftest audit-v2-downgrade-test
(testing "Migration v48.00-050"
(impl/test-migrations "v48.00-050" [migrate!]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment