Hello,
I'm trying to migrate Metabase config from H2 to PostgreSQL DB but I can't figure out what is the problem.
The H2 db is setup outside the container > /home/alex/metabase/metabase.db
The Postgre is in another docker on the same server.
I stopped metabase container.
Here is what i'm using:
docker run --name metabase-migration \
-v /home/alex/metabase:/metabase-data \
-e "MB_DB_FILE=/metabase-data/metabase.db" \
-e "MB_DB_TYPE=postgres" \
-e "MB_DB_DBNAME=metabase" \
-e "MB_DB_PORT=5432" \
-e "MB_DB_USER=<metabase_login>" \
-e "MB_DB_PASS=<metabase_password>" \
-e "MB_DB_HOST=localhost" \
metabase/metabase load-from-h2
and here is the result I have :
Warning: environ value jdk-11.0.12+7 for key :java-version has been overwritten with 11.0.12
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
2021-12-09 13:55:16,942 INFO metabase.util :: Maximum memory available to JVM: 3.1 GB
2021-12-09 13:55:25,720 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
2021-12-09 13:55:27,901 INFO driver.impl :: Registered abstract driver :sql 🚚
↙ Load driver :sql took 490.8 ms
2021-12-09 13:55:27,909 INFO driver.impl :: Registered abstract driver :sql-jdbc (parents: [:sql]) 🚚
Load driver :sql-jdbc took 501.5 ms
2021-12-09 13:55:27,912 INFO driver.impl :: Registered driver :h2 (parents: [:sql-jdbc]) 🚚
2021-12-09 13:55:27,927 INFO driver.impl :: Registered driver :mysql (parents: [:sql-jdbc]) 🚚
2021-12-09 13:55:28,509 INFO driver.impl :: Registered driver :postgres (parents: [:sql-jdbc]) 🚚
2021-12-09 13:55:30,401 INFO metabase.core ::
Metabase v0.41.1 (76aa4a5 release-x.41.x)
Copyright © 2021 Metabase, Inc.
Metabase Enterprise Edition extensions are NOT PRESENT.
2021-12-09 13:55:30,410 WARN metabase.core :: WARNING: You have enabled namespace tracing, which could log sensitive information like db passwords.
2021-12-09 13:55:30,452 INFO cmd.copy :: Set up h2 source database and run migrations...
2021-12-09 13:55:30,455 INFO db.setup :: Verifying h2 Database Connection ...
2021-12-09 13:55:30,494 ERROR cmd.copy :: [FAIL]
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...
Could you please give me a hand on this?
Thanks.