diff --git a/resources/migrations/000_migrations.yaml b/resources/migrations/000_migrations.yaml index b8cd5fe4e7cc1f6528f7e4dc8fb8d7eb048c1c51..b399a280637afe791dacfc06cb95309bb5d10e8b 100644 --- a/resources/migrations/000_migrations.yaml +++ b/resources/migrations/000_migrations.yaml @@ -5148,9 +5148,19 @@ databaseChangeLog: preConditions: - onFail: MARK_RAN - onUpdateSQL: IGNORE - - sqlCheck: - expectedResult: 0 - sql: SELECT count(*) FROM (SELECT count(*) FROM METABASE_TABLE GROUP BY DB_ID, SCHEMA, NAME HAVING count(*) > 1) t1 + - or: + - and: + - dbms: + type: mysql,mariadb + - sqlCheck: + expectedResult: 0 + sql: SELECT count(*) FROM (SELECT count(*) FROM `metabase_table` GROUP BY `db_id`, `schema`, `name` HAVING count(*) > 1) t1 + - and: + - dbms: + type: h2,postgresql + - sqlCheck: + expectedResult: 0 + sql: SELECT count(*) FROM (SELECT count(*) FROM METABASE_TABLE GROUP BY DB_ID, SCHEMA, NAME HAVING count(*) > 1) t1 changes: - addUniqueConstraint: tableName: metabase_table @@ -5164,9 +5174,19 @@ databaseChangeLog: preConditions: - onFail: MARK_RAN - onUpdateSQL: IGNORE - - sqlCheck: - expectedResult: 0 - sql: SELECT count(*) FROM (SELECT count(*) FROM METABASE_FIELD GROUP BY TABLE_ID, PARENT_ID, NAME HAVING count(*) > 1) t1 + - or: + - and: + - dbms: + type: mysql,mariadb + - sqlCheck: + expectedResult: 0 + sql: SELECT count(*) FROM (SELECT count(*) FROM `metabase_field` GROUP BY `table_id`, `parent_id`, `name` HAVING count(*) > 1) t1 + - and: + - dbms: + type: h2,postgresql + - sqlCheck: + expectedResult: 0 + sql: SELECT count(*) FROM (SELECT count(*) FROM METABASE_FIELD GROUP BY TABLE_ID, PARENT_ID, NAME HAVING count(*) > 1) t1 changes: - addUniqueConstraint: tableName: metabase_field diff --git a/test/metabase/sync/analyze/table_row_count_test.clj b/test/metabase/sync/analyze/table_row_count_test.clj index c621c180ffd7279f76e9f3b4bdd99d428898f49f..7277205cd25998dc8e730530323a2e7e3de8c8f8 100644 --- a/test/metabase/sync/analyze/table_row_count_test.clj +++ b/test/metabase/sync/analyze/table_row_count_test.clj @@ -1,22 +1,19 @@ (ns metabase.sync.analyze.table-row-count-test "Tests for the sync logic that updates a Table's row count." - (:require [metabase - [query-processor-test :as qp-test] - [util :as u]] - [metabase.models.table :refer [Table]] + (:require [metabase.models.table :refer [Table]] + [metabase.query-processor-test :as qp-test] [metabase.sync.analyze.table-row-count :as table-row-count] - [metabase.test.data :as data] + [metabase.test + [data :as data] + [util :as tu]] [metabase.test.data.datasets :as datasets] - [toucan.db :as db] - [toucan.util.test :as tt])) + [toucan.db :as db])) ;; test that syncing table row counts works ;; TODO - write a Druid version of this test. Works slightly differently since Druid doesn't have a 'venues' table ;; TODO - not sure why this doesn't work on Oracle. Seems to be an issue with the test rather than with the Oracle driver (datasets/expect-with-drivers (disj qp-test/non-timeseries-drivers :oracle) 100 - (tt/with-temp Table [venues-copy (let [venues-table (Table (data/id :venues))] - (assoc (select-keys venues-table [:schema :name :db_id]) - :rows 0))] - (table-row-count/update-row-count! venues-copy) - (db/select-one-field :rows Table :id (u/get-id venues-copy)))) + (tu/with-temp-vals-in-db Table (data/id :venues) {:rows 0} + (table-row-count/update-row-count! (Table (data/id :venues))) + (db/select-one-field :rows Table :id (data/id :venues))))