Error with Migrate to mysql

I run

docker run --name metabase-migration \
-v ~/metabase-data:/metabase-data \
-e "MB_DB_FILE=/metabase-data/metabase.db" \
-e "MB_DB_TYPE=mysql" \
-e "MB_DB_DBNAME=metabase" \
-e "MB_DB_PORT=3306" \
-e "MB_DB_USER=****" \
-e "MB_DB_PASS=****" \
-e "MB_DB_HOST=****" \
metabase/metabase load-from-h2

it gives me the error

clojure.lang.ExceptionInfo: ERROR Set up h2 source database and run migrations... {}
        at metabase.cmd.copy$do_step$fn__81962.invoke(copy.clj:33)
        at metabase.cmd.copy$do_step.invokeStatic(copy.clj:29)
        at metabase.cmd.copy$do_step.invoke(copy.clj:27)
        at metabase.cmd.copy$fn__82123$copy_BANG___82128$fn__82129.invoke(copy.clj:264)
        at metabase.cmd.copy$fn__82123$copy_BANG___82128.invoke(copy.clj:257)
        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 metabase.cmd$load_from_h2.invokeStatic(cmd.clj:42)
        at metabase.cmd$load_from_h2.invoke(cmd.clj:39)
        at clojure.lang.AFn.applyToHelper(AFn.java:152)
        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__82906.invoke(cmd.clj:190)
        at metabase.cmd$run_cmd.invokeStatic(cmd.clj:190)
        at metabase.cmd$run_cmd.invoke(cmd.clj:186)
        at clojure.lang.Var.invoke(Var.java:388)
        at metabase.core$run_cmd.invokeStatic(core.clj:145)
        at metabase.core$run_cmd.invoke(core.clj:143)
        at metabase.core$_main.invokeStatic(core.clj:167)
        at metabase.core$_main.doInvoke(core.clj:162)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at metabase.core.main(Unknown Source)
Caused by: clojure.lang.ExceptionInfo: Unable to connect to Metabase h2 DB. {}
        at metabase.db.setup$fn__33707$verify_db_connection__33712$fn__33713$fn__33714.invoke(setup.clj:102)
        at metabase.db.setup$fn__33707$verify_db_connection__33712$fn__33713.invoke(setup.clj:100)
        at metabase.db.setup$fn__33707$verify_db_connection__33712.invoke(setup.clj:94)
        at metabase.db.setup$setup_db_BANG_$fn__33742$fn__33743.invoke(setup.clj:142)
        at metabase.util$do_with_us_locale.invokeStatic(util.clj:694)
        at metabase.util$do_with_us_locale.invoke(util.clj:680)
        at metabase.db.setup$setup_db_BANG_$fn__33742.invoke(setup.clj:141)
        at metabase.db.setup$setup_db_BANG_.invokeStatic(setup.clj:140)
        at metabase.db.setup$setup_db_BANG_.invoke(setup.clj:136)
        at metabase.cmd.copy$fn__82123$copy_BANG___82128$fn__82129$fn__82130.invoke(copy.clj:265)
        at metabase.cmd.copy$do_step$fn__81962.invoke(copy.clj:30)
        ... 25 more
Caused by: org.h2.jdbc.JdbcSQLException: Invalid database name: "/" [90138-197]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
        at org.h2.message.DbException.get(DbException.java:179)
        at org.h2.message.DbException.get(DbException.java:155)
        at org.h2.engine.ConnectionInfo.getName(ConnectionInfo.java:404)
        at org.h2.engine.Engine.openSession(Engine.java:50)
        at org.h2.engine.Engine.openSession(Engine.java:179)
        at org.h2.engine.Engine.createSessionAndValidate(Engine.java:157)
        at org.h2.engine.Engine.createSession(Engine.java:140)
        at org.h2.engine.Engine.createSession(Engine.java:28)
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:351)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103)
        at org.h2.Driver.connect(Driver.java:69)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at clojure.java.jdbc$get_driver_connection.invokeStatic(jdbc.clj:271)
        at clojure.java.jdbc$get_driver_connection.invoke(jdbc.clj:250)
        at clojure.java.jdbc$get_connection.invokeStatic(jdbc.clj:411)
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:274)
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1111)
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invoke(jdbc.clj:1093)
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1182)
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1160)
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
        at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invokeStatic(connection.clj:240)
        at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invoke(connection.clj:237)
        at metabase.db.setup$fn__33707$verify_db_connection__33712$fn__33713$fn__33714.invoke(setup.clj:100)
        ... 35 more
Command failed with exception: ERROR Set up h2 source database and run migrations...

Here is the file sturcture of metabase-data

and here is the Diagnostic Info

{
  "browser-info": {
    "language": "en",
    "platform": "Win32",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36",
    "vendor": "Google Inc."
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "11.0.12+7",
    "java.vendor": "Eclipse Foundation",
    "java.vendor.url": "https://adoptium.net/",
    "java.version": "11.0.12",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "11.0.12+7",
    "os.name": "Linux",
    "os.version": "5.4.0-1045-aws",
    "user.language": "en",
    "user.timezone": "GMT"
  },
  "metabase-info": {
    "databases": [
      "h2",
      "mysql"
    ],
    "hosting-env": "unknown",
    "application-database": "h2",
    "application-database-details": {
      "database": {
        "name": "H2",
        "version": "1.4.197 (2018-03-18)"
      },
      "jdbc-driver": {
        "name": "H2 JDBC Driver",
        "version": "1.4.197 (2018-03-18)"
      }
    },
    "run-mode": "prod",
    "version": {
      "date": "2021-10-21",
      "tag": "v0.41.1",
      "branch": "release-x.41.x",
      "hash": "76aa4a5"
    },
    "settings": {
      "report-timezone": "EST5EDT"
    }
  }
}

Hi @DDDDT
I would recommend that you do the migration via JAR. It's much easier and is a one-off process, and then you can run the container via MySQL as the application database after.
The path is /metabase-data/metabase.db/metabase.db

1 Like

I tried the /metabase-data/metabase.db/metabase.db as well it gives me the same error

JAR works, thank you!