Hi there,
I am always getting same error when moving H2 to mysql (at migration step_id=89)
Metabase: v0.45.4.3
mysql@azure: 8.0 (connection ok, tables already created)
every help appreciated, cause I am stuck here due to lack of java knowledge
maybe there is a way to fix this issue or skip step_id=89
thanks a lot
Command failed with exception: ERROR Set up mysql target database and run migrations...: liquibase.exception.MigrationFailedException: Migration failed for change set migrations/000_migrations.yaml::89::camsaul:
Reason: liquibase.exception.DatabaseException: (conn=345) Multiple primary key defined [Failed SQL: (1068) ALTER TABLE `metabase`**.`QRTZ_JOB_DETAILS` ADD PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`)]**
full log:
Warning: protocol #'java-time.core/Amount is overwriting function abs
WARNING: abs already refers to: #'clojure.core/abs in namespace: java-time.core, being replaced by: #'java-time.core/abs
WARNING: abs already refers to: #'clojure.core/abs in namespace: java-time, being replaced by: #'java-time/abs
2023-10-06 11:48:41,851 INFO metabase.util :: Maximum memory available to JVM: 2,0 GB
2023-10-06 11:48:42,453 INFO util.encryption :: Saved credentials encryption is DISABLED for this Metabase instance. 🔓
For more information, see https://metabase.com/docs/latest/operations-guide/encrypting-database-details-at-rest.html
WARNING: abs already refers to: #'clojure.core/abs in namespace: taoensso.encore, being replaced by: #'taoensso.encore/abs
WARNING: abs already refers to: #'clojure.core/abs in namespace: kixi.stats.math, being replaced by: #'kixi.stats.math/abs
WARNING: abs already refers to: #'clojure.core/abs in namespace: kixi.stats.test, being replaced by: #'kixi.stats.math/abs
WARNING: abs already refers to: #'clojure.core/abs in namespace: kixi.stats.distribution, being replaced by: #'kixi.stats.math/abs
2023-10-06 11:48:46,375 INFO driver.impl :: Registered abstract driver :sql 🚚
2023-10-06 11:48:46,377 INFO metabase.util :: ⮦ Load driver :sql took 27,7 ms
2023-10-06 11:48:46,379 INFO driver.impl :: Registered abstract driver :sql-jdbc (parents: [:sql]) 🚚
2023-10-06 11:48:46,380 INFO metabase.util :: Load driver :sql-jdbc took 31,9 ms
2023-10-06 11:48:46,380 INFO driver.impl :: Registered driver :h2 (parents: [:sql-jdbc]) 🚚
2023-10-06 11:48:46,391 INFO driver.impl :: Registered driver :mysql (parents: [:sql-jdbc]) 🚚
2023-10-06 11:48:46,401 INFO driver.impl :: Registered driver :postgres (parents: [:sql-jdbc]) 🚚
2023-10-06 11:48:47,047 INFO metabase.core ::
Metabase v0.45.4.3 (c18362a release-x.45.x)
Copyright © 2023 Metabase, Inc.
Metabase Enterprise Edition extensions are NOT PRESENT.
2023-10-06 11:48:47,066 INFO cmd.copy :: Set up h2 source database and run migrations...
2023-10-06 11:48:47,067 INFO db.setup :: Verifying h2 Database Connection ...
2023-10-06 11:48:48,011 INFO db.setup :: Successfully verified H2 1.4.197 (2018-03-18) application database connection. ✅
2023-10-06 11:48:48,012 INFO db.setup :: Running Database Migrations...
2023-10-06 11:48:48,012 INFO db.setup :: Setting up Liquibase...
2023-10-06 11:48:48,210 INFO db.setup :: Liquibase is ready.
2023-10-06 11:48:48,210 INFO db.liquibase :: Checking if Database has unrun migrations...
2023-10-06 11:48:48,847 INFO db.setup :: Database Migrations Current ... ✅
2023-10-06 11:48:48,848 INFO db.data-migrations :: Running all necessary data migrations, this may take a minute.
2023-10-06 11:48:48,852 INFO db.data-migrations :: Finished running data migrations.
2023-10-06 11:48:48,852 INFO metabase.util :: Database setup took 1,8 s
2023-10-06 11:48:48,852 INFO cmd.copy :: [OK]
2023-10-06 11:48:48,853 INFO cmd.copy :: Set up mysql target database and run migrations...
2023-10-06 11:48:48,853 INFO db.setup :: Verifying mysql Database Connection ...
2023-10-06 11:48:49,593 INFO db.setup :: Successfully verified MySQL 8.0.32 application database connection. ✅
2023-10-06 11:48:49,593 INFO db.setup :: Running Database Migrations...
2023-10-06 11:48:49,698 INFO db.setup :: Setting up Liquibase...
2023-10-06 11:48:49,816 INFO db.setup :: Liquibase is ready.
2023-10-06 11:48:49,816 INFO db.liquibase :: Checking if Database has unrun migrations...
2023-10-06 11:48:54,216 INFO db.liquibase :: Database has unrun migrations. Waiting for migration lock to be cleared...
2023-10-06 11:48:59,551 INFO db.liquibase :: Migration lock is cleared. Running migrations...
2023-10-06 11:50:29,455 ERROR cmd.copy :: [FAIL]
clojure.lang.ExceptionInfo: ERROR Set up mysql target database and run migrations...: liquibase.exception.MigrationFailedException: Migration failed for change set migrations/000_migrations.yaml::89::camsaul:
Reason: liquibase.exception.DatabaseException: (conn=345) Multiple primary key defined [Failed SQL: (1068) ALTER TABLE `metabase`.`QRTZ_JOB_DETAILS` ADD PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`)] {}
at metabase.cmd.copy$do_step$fn__85812.invoke(copy.clj:68)
at metabase.cmd.copy$do_step.invokeStatic(copy.clj:64)
at metabase.cmd.copy$do_step.invoke(copy.clj:62)
at metabase.cmd.copy$fn__85964$copy_BANG___85969$fn__85970.invoke(copy.clj:341)
at metabase.cmd.copy$fn__85964$copy_BANG___85969.invoke(copy.clj:329)
at metabase.cmd.load_from_h2$load_from_h2_BANG_.invokeStatic(load_from_h2.clj:35)
at metabase.cmd.load_from_h2$load_from_h2_BANG_.invoke(load_from_h2.clj:25)
at clojure.lang.Var.invoke(Var.java:384)
at metabase.cmd$load_from_h2.invokeStatic(cmd.clj:45)
at metabase.cmd$load_from_h2.invoke(cmd.clj:39)
at clojure.lang.AFn.applyToHelper(AFn.java:154)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.core$apply.invokeStatic(core.clj:667)
at clojure.core$apply.invoke(core.clj:662)
at metabase.cmd$run_cmd$fn__86561.invoke(cmd.clj:236)
at metabase.cmd$run_cmd.invokeStatic(cmd.clj:236)
at metabase.cmd$run_cmd.invoke(cmd.clj:227)
at clojure.lang.Var.invoke(Var.java:388)
at metabase.core$run_cmd.invokeStatic(core.clj:166)
at metabase.core$run_cmd.invoke(core.clj:164)
at metabase.core$_main.invokeStatic(core.clj:188)
at metabase.core$_main.doInvoke(core.clj:183)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:705)
at clojure.core$apply.invokeStatic(core.clj:667)
at clojure.core$apply.invoke(core.clj:662)
at metabase.bootstrap$_main.invokeStatic(bootstrap.clj:25)
at metabase.bootstrap$_main.doInvoke(bootstrap.clj:22)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at metabase.bootstrap.main(Unknown Source)
Caused by: liquibase.exception.LiquibaseException: liquibase.exception.MigrationFailedException: Migration failed for change set migrations/000_migrations.yaml::89::camsaul:
Reason: liquibase.exception.DatabaseException: (conn=345) Multiple primary key defined [Failed SQL: (1068) ALTER TABLE `metabase`.`QRTZ_JOB_DETAILS` ADD PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`)]
at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:126)
at liquibase.Liquibase.lambda$null$0(Liquibase.java:265)
at liquibase.Scope.lambda$child$0(Scope.java:180)
at liquibase.Scope.child(Scope.java:189)
at liquibase.Scope.child(Scope.java:179)
at liquibase.Scope.child(Scope.java:158)
at liquibase.Scope.child(Scope.java:243)
at liquibase.Liquibase.lambda$update$1(Liquibase.java:264)
at liquibase.Scope.lambda$child$0(Scope.java:180)
at liquibase.Scope.child(Scope.java:189)
at liquibase.Scope.child(Scope.java:179)
at liquibase.Scope.child(Scope.java:158)
at liquibase.Liquibase.runInScope(Liquibase.java:2405)
at liquibase.Liquibase.update(Liquibase.java:211)
at liquibase.Liquibase.update(Liquibase.java:197)
at liquibase.Liquibase.update(Liquibase.java:193)
at metabase.db.liquibase$migrate_up_if_needed_BANG_.invokeStatic(liquibase.clj:143)
at metabase.db.liquibase$migrate_up_if_needed_BANG_.invoke(liquibase.clj:131)
at metabase.db.setup$fn__36393$migrate_BANG___36398$fn__36399$fn__36400.invoke(setup.clj:67)
at metabase.db.liquibase$fn__33085$do_with_liquibase__33090$fn__33091.invoke(liquibase.clj:60)
at metabase.db.liquibase$fn__33085$do_with_liquibase__33090.invoke(liquibase.clj:52)
at metabase.db.setup$fn__36393$migrate_BANG___36398$fn__36399.invoke(setup.clj:62)
at metabase.db.setup$fn__36393$migrate_BANG___36398.doInvoke(setup.clj:40)
at clojure.lang.RestFn.invoke(RestFn.java:445)
at metabase.db.setup$fn__36452$run_schema_migrations_BANG___36457$fn__36458.invoke(setup.clj:120)
at metabase.db.setup$fn__36452$run_schema_migrations_BANG___36457.invoke(setup.clj:114)
at metabase.db.setup$fn__36504$setup_db_BANG___36509$fn__36510$fn__36513$fn__36514.invoke(setup.clj:146)
at metabase.util$do_with_us_locale.invokeStatic(util.clj:707)
at metabase.util$do_with_us_locale.invoke(util.clj:693)
at metabase.db.setup$fn__36504$setup_db_BANG___36509$fn__36510$fn__36513.invoke(setup.clj:144)
at metabase.db.setup$fn__36504$setup_db_BANG___36509$fn__36510.invoke(setup.clj:143)
at metabase.db.setup$fn__36504$setup_db_BANG___36509.invoke(setup.clj:137)
at metabase.cmd.copy$fn__85964$copy_BANG___85969$fn__85970$fn__85973.invoke(copy.clj:343)
at metabase.cmd.copy$do_step$fn__85812.invoke(copy.clj:65)
... 29 more
Caused by: liquibase.exception.MigrationFailedException: Migration failed for change set migrations/000_migrations.yaml::89::camsaul:
Reason: liquibase.exception.DatabaseException: (conn=345) Multiple primary key defined [Failed SQL: (1068) ALTER TABLE `metabase`.`QRTZ_JOB_DETAILS` ADD PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`)]
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:696)
at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:56)
at liquibase.changelog.ChangeLogIterator$2.lambda$null$0(ChangeLogIterator.java:113)
at liquibase.Scope.lambda$child$0(Scope.java:180)
at liquibase.Scope.child(Scope.java:189)
at liquibase.Scope.child(Scope.java:179)
at liquibase.Scope.child(Scope.java:158)
at liquibase.changelog.ChangeLogIterator$2.lambda$run$1(ChangeLogIterator.java:112)
at liquibase.Scope.lambda$child$0(Scope.java:180)
at liquibase.Scope.child(Scope.java:189)
at liquibase.Scope.child(Scope.java:179)
at liquibase.Scope.child(Scope.java:158)
at liquibase.Scope.child(Scope.java:243)
at liquibase.changelog.ChangeLogIterator$2.run(ChangeLogIterator.java:93)
at liquibase.Scope.lambda$child$0(Scope.java:180)
at liquibase.Scope.child(Scope.java:189)
at liquibase.Scope.child(Scope.java:179)
at liquibase.Scope.child(Scope.java:158)
at liquibase.Scope.child(Scope.java:243)
at liquibase.Scope.child(Scope.java:247)
at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:65)
... 62 more
Caused by: liquibase.exception.DatabaseException: (conn=345) Multiple primary key defined [Failed SQL: (1068) ALTER TABLE `metabase`.`QRTZ_JOB_DETAILS` ADD PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`)]
at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:397)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:83)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:151)
at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1279)
at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1261)
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:661)
... 82 more
Caused by: java.sql.SQLSyntaxErrorException: (conn=345) Multiple primary key defined
at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:62)
at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:158)
at org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue(MariaDbStatement.java:262)
at org.mariadb.jdbc.MariaDbStatement.executeInternal(MariaDbStatement.java:362)
at org.mariadb.jdbc.MariaDbStatement.execute(MariaDbStatement.java:500)
at com.mchange.v2.c3p0.impl.NewProxyStatement.execute(NewProxyStatement.java:75)
at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:393)
... 87 more
Caused by: org.mariadb.jdbc.internal.util.exceptions.MariaDbSqlException: Multiple primary key defined
at org.mariadb.jdbc.internal.util.exceptions.MariaDbSqlException.of(MariaDbSqlException.java:34)
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.exceptionWithQuery(AbstractQueryProtocol.java:194)
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:262)
at org.mariadb.jdbc.MariaDbStatement.executeInternal(MariaDbStatement.java:356)
... 90 more
Caused by: java.sql.SQLException: Multiple primary key defined
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:1695)
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:1557)
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:1520)
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:256)
... 91 more
Command failed with exception: ERROR Set up mysql target database and run migrations...: liquibase.exception.MigrationFailedException: Migration failed for change set migrations/000_migrations.yaml::89::camsaul:
Reason: liquibase.exception.DatabaseException: (conn=345) Multiple primary key defined [Failed SQL: (1068) ALTER TABLE `metabase`.`QRTZ_JOB_DETAILS` ADD PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`)]