From 26c94e76cdd91af42200b2de201b7a92779f0cca Mon Sep 17 00:00:00 2001 From: Ngoc Khuat <qn.khuat@gmail.com> Date: Wed, 3 Jan 2024 18:05:44 +0700 Subject: [PATCH] Modify type metabase_field.database_required to bit(1) in mysql (#37213) --- .../migrations/001_update_migrations.yaml | 22 +++++++++++++++++++ test/metabase/db/schema_migrations_test.clj | 8 +++++++ 2 files changed, 30 insertions(+) diff --git a/resources/migrations/001_update_migrations.yaml b/resources/migrations/001_update_migrations.yaml index 739d1e8341e..dc06d33bf18 100644 --- a/resources/migrations/001_update_migrations.yaml +++ b/resources/migrations/001_update_migrations.yaml @@ -5122,6 +5122,28 @@ databaseChangeLog: - dbms: type: mysql,mariadb + - changeSet: + id: v49.00-060 + author: qnkhuat + comment: >- + Added 0.49.0 - modify type of metabase_field.database_partitioned + from boolean to ${boolean.type} on mysql,mariadb + dbms: mysql,mariadb + changes: + - modifyDataType: + tableName: metabase_field + columnName: database_partitioned + newDataType: ${boolean.type} + rollback: + - modifyDataType: + tableName: metabase_field + columnName: database_partitioned + newDataType: boolean + preConditions: + - onFail: MARK_RAN + - dbms: + type: mysql,mariadb + # >>>>>>>>>> DO NOT ADD NEW MIGRATIONS BELOW THIS LINE! ADD THEM ABOVE <<<<<<<<<< diff --git a/test/metabase/db/schema_migrations_test.clj b/test/metabase/db/schema_migrations_test.clj index e60050ccdd4..cf3b6826777 100644 --- a/test/metabase/db/schema_migrations_test.clj +++ b/test/metabase/db/schema_migrations_test.clj @@ -757,3 +757,11 @@ (is (t2/exists? :pulse :id dash-subscription-id)) (is (t2/exists? :pulse :id alert-id)) (is (not (t2/exists? :pulse :id legacy-pulse-id))))))) + +(deftest no-tiny-int-columns + (mt/test-driver :mysql + (testing "All boolean columns in mysql, mariadb should be bit(1)" + (is (= [{:table_name "DATABASECHANGELOGLOCK" :column_name "LOCKED"}] ;; outlier because this is liquibase's table + (t2/query + (format "SELECT table_name, column_name FROM information_schema.columns WHERE data_type LIKE 'tinyint%%' AND table_schema = '%s';" + (-> (mdb.connection/data-source) .getConnection .getCatalog)))))))) -- GitLab