Hello
I have metabase jar on a Windows server.
I run on H2 for a couple of months and now want to migrate to PostGRES.
I followed the steps described here : Migrating to a production application database | Metabase Documentation
I also used the SET command to set the environment variables described here : Using or migrating from an H2 application database | Metabase Documentation
When running the load-from-H2 command, I have the error in the logs below : basically metabase does not recognize the DB TYPE as postgres.
I check the variables (with echo %MB_DB_TYPE%, echo %MB_DB_NAME%, echo %MB_DB_PORT%, …) and all variables are set properly.
Any idea why metabase throws this error?
note that the PostGres DB is brand new
C:\Metabase>java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar load-from-h2 C:/Metabase/metabase.db
2025-12-19 09:18:42,279 INFO metabase.util :: Maximum memory available to JVM: 3.9 GB
2025-12-19 09:18:46,497 INFO util.encryption :: Saved credentials encryption is DISABLED for this Metabase instance.
For more information, see Redirecting…
Exception in thread "main" java.lang.AssertionError: Assert failed: (#{:postgres :h2 :mysql} db-type)
at metabase.app_db.connection$application_db.invokeStatic(connection.clj:64)
at metabase.app_db.connection$application_db.doInvoke(connection.clj:64)
at clojure.lang.RestFn.invoke(RestFn.java:467)
at metabase.app_db.connection__init.load(Unknown Source)
at metabase.app_db.connection__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:543)
at clojure.lang.RT.classForName(RT.java:2229)
at clojure.lang.RT.classForName(RT.java:2238)
at clojure.lang.RT.loadClassForName(RT.java:2257)
at clojure.lang.RT.load(RT.java:469)
at clojure.lang.RT.load(RT.java:444)
at clojure.core$load$fn__6931.invoke(core.clj:6189)
at clojure.core$load.invokeStatic(core.clj:6188)
at clojure.core$load.doInvoke(core.clj:6172)
at clojure.lang.RestFn.invoke(RestFn.java:411)
at clojure.core$load_one.invokeStatic(core.clj:5961)
at clojure.core$load_one.invoke(core.clj:5956)
at clojure.core$load_lib$fn__6873.invoke(core.clj:6003)
at clojure.core$load_lib.invokeStatic(core.clj:6002)
at clojure.core$load_lib.doInvoke(core.clj:5981)
at clojure.lang.RestFn.applyTo(RestFn.java:145)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6044)
at clojure.core$load_libs.doInvoke(core.clj:6028)
at clojure.lang.RestFn.applyTo(RestFn.java:140)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6066)
at clojure.core$require.doInvoke(core.clj:6066)
at clojure.lang.RestFn.invoke(RestFn.java:1526)
at metabase.app_db.core$loading__6812__auto____46426.invoke(core.clj:1)
at metabase.app_db.core__init.load(Unknown Source)
at metabase.app_db.core__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:543)
at clojure.lang.RT.classForName(RT.java:2229)
at clojure.lang.RT.classForName(RT.java:2238)
at clojure.lang.RT.loadClassForName(RT.java:2257)
at clojure.lang.RT.load(RT.java:469)
at clojure.lang.RT.load(RT.java:444)
at clojure.core$load$fn__6931.invoke(core.clj:6189)
at clojure.core$load.invokeStatic(core.clj:6188)
at clojure.core$load.doInvoke(core.clj:6172)
at clojure.lang.RestFn.invoke(RestFn.java:411)
at clojure.core$load_one.invokeStatic(core.clj:5961)
at clojure.core$load_one.invoke(core.clj:5956)
at clojure.core$load_lib$fn__6873.invoke(core.clj:6003)
at clojure.core$load_lib.invokeStatic(core.clj:6002)
at clojure.core$load_lib.doInvoke(core.clj:5981)
at clojure.lang.RestFn.applyTo(RestFn.java:145)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6044)
at clojure.core$load_libs.doInvoke(core.clj:6028)
at clojure.lang.RestFn.applyTo(RestFn.java:140)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6066)
at clojure.core$require.doInvoke(core.clj:6066)
at clojure.lang.RestFn.invoke(RestFn.java:554)
at metabase.settings.models.setting.cache$loading__6812__auto____46534.invoke(cache.clj:1)
at metabase.settings.models.setting.cache__init.load(Unknown Source)
at metabase.settings.models.setting.cache__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:543)
at clojure.lang.RT.classForName(RT.java:2229)
at clojure.lang.RT.classForName(RT.java:2238)
at clojure.lang.RT.loadClassForName(RT.java:2257)
at clojure.lang.RT.load(RT.java:469)
at clojure.lang.RT.load(RT.java:444)
at clojure.core$load$fn__6931.invoke(core.clj:6189)
at clojure.core$load.invokeStatic(core.clj:6188)
at clojure.core$load.doInvoke(core.clj:6172)
at clojure.lang.RestFn.invoke(RestFn.java:411)
at clojure.core$load_one.invokeStatic(core.clj:5961)
at clojure.core$load_one.invoke(core.clj:5956)
at clojure.core$load_lib$fn__6873.invoke(core.clj:6003)
at clojure.core$load_lib.invokeStatic(core.clj:6002)
at clojure.core$load_lib.doInvoke(core.clj:5981)
at clojure.lang.RestFn.applyTo(RestFn.java:145)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6044)
at clojure.core$load_libs.doInvoke(core.clj:6028)
at clojure.lang.RestFn.applyTo(RestFn.java:140)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6066)
at clojure.core$require.doInvoke(core.clj:6066)
at clojure.lang.RestFn.invoke(RestFn.java:3897)
at metabase.settings.models.setting$loading__6812__auto____46585.invoke(setting.clj:1)
at metabase.settings.models.setting__init.load(Unknown Source)
at metabase.settings.models.setting__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:543)
at clojure.lang.RT.classForName(RT.java:2229)
at clojure.lang.RT.classForName(RT.java:2238)
at clojure.lang.RT.loadClassForName(RT.java:2257)
at clojure.lang.RT.load(RT.java:469)
at clojure.lang.RT.load(RT.java:444)
at clojure.core$load$fn__6931.invoke(core.clj:6189)
at clojure.core$load.invokeStatic(core.clj:6188)
at clojure.core$load.doInvoke(core.clj:6172)
at clojure.lang.RestFn.invoke(RestFn.java:411)
at clojure.core$load_one.invokeStatic(core.clj:5961)
at clojure.core$load_one.invoke(core.clj:5956)
at clojure.core$load_lib$fn__6873.invoke(core.clj:6003)
at clojure.core$load_lib.invokeStatic(core.clj:6002)
at clojure.core$load_lib.doInvoke(core.clj:5981)
at clojure.lang.RestFn.applyTo(RestFn.java:145)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6044)
at clojure.core$load_libs.doInvoke(core.clj:6028)
at clojure.lang.RestFn.applyTo(RestFn.java:140)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6066)
at clojure.core$require.doInvoke(core.clj:6066)
at clojure.lang.RestFn.invoke(RestFn.java:485)
at metabase.settings.core$loading__6812__auto____47204.invoke(core.clj:1)
at metabase.settings.core__init.load(Unknown Source)
at metabase.settings.core__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:543)
at clojure.lang.RT.classForName(RT.java:2229)
at clojure.lang.RT.classForName(RT.java:2238)
at clojure.lang.RT.loadClassForName(RT.java:2257)
at clojure.lang.RT.load(RT.java:469)
at clojure.lang.RT.load(RT.java:444)
at clojure.core$load$fn__6931.invoke(core.clj:6189)
at clojure.core$load.invokeStatic(core.clj:6188)
at clojure.core$load.doInvoke(core.clj:6172)
at clojure.lang.RestFn.invoke(RestFn.java:411)
at clojure.core$load_one.invokeStatic(core.clj:5961)
at clojure.core$load_one.invoke(core.clj:5956)
at clojure.core$load_lib$fn__6873.invoke(core.clj:6003)
at clojure.core$load_lib.invokeStatic(core.clj:6002)
at clojure.core$load_lib.doInvoke(core.clj:5981)
at clojure.lang.RestFn.applyTo(RestFn.java:145)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6044)
at clojure.core$load_libs.doInvoke(core.clj:6028)
at clojure.lang.RestFn.applyTo(RestFn.java:140)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6066)
at clojure.core$require.doInvoke(core.clj:6066)
at clojure.lang.RestFn.invoke(RestFn.java:554)
at metabase.appearance.settings$loading__6812__auto____49950.invoke(settings.clj:1)
at metabase.appearance.settings__init.load(Unknown Source)
at metabase.appearance.settings__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:543)
at clojure.lang.RT.classForName(RT.java:2229)
at clojure.lang.RT.classForName(RT.java:2238)
at clojure.lang.RT.loadClassForName(RT.java:2257)
at clojure.lang.RT.load(RT.java:469)
at clojure.lang.RT.load(RT.java:444)
at clojure.core$load$fn__6931.invoke(core.clj:6189)
at clojure.core$load.invokeStatic(core.clj:6188)
at clojure.core$load.doInvoke(core.clj:6172)
at clojure.lang.RestFn.invoke(RestFn.java:411)
at clojure.core$load_one.invokeStatic(core.clj:5961)
at clojure.core$load_one.invoke(core.clj:5956)
at clojure.core$load_lib$fn__6873.invoke(core.clj:6003)
at clojure.core$load_lib.invokeStatic(core.clj:6002)
at clojure.core$load_lib.doInvoke(core.clj:5981)
at clojure.lang.RestFn.applyTo(RestFn.java:145)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6044)
at clojure.core$load_libs.doInvoke(core.clj:6028)
at clojure.lang.RestFn.applyTo(RestFn.java:140)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6066)
at clojure.core$require.doInvoke(core.clj:6066)
at clojure.lang.RestFn.invoke(RestFn.java:424)
at metabase.appearance.core$loading__6812__auto____50151.invoke(core.clj:1)
at metabase.appearance.core__init.load(Unknown Source)
at metabase.appearance.core__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:543)
at clojure.lang.RT.classForName(RT.java:2229)
at clojure.lang.RT.classForName(RT.java:2238)
at clojure.lang.RT.loadClassForName(RT.java:2257)
at clojure.lang.RT.load(RT.java:469)
at clojure.lang.RT.load(RT.java:444)
at clojure.core$load$fn__6931.invoke(core.clj:6189)
at clojure.core$load.invokeStatic(core.clj:6188)
at clojure.core$load.doInvoke(core.clj:6172)
at clojure.lang.RestFn.invoke(RestFn.java:411)
at clojure.core$load_one.invokeStatic(core.clj:5961)
at clojure.core$load_one.invoke(core.clj:5956)
at clojure.core$load_lib$fn__6873.invoke(core.clj:6003)
at clojure.core$load_lib.invokeStatic(core.clj:6002)
at clojure.core$load_lib.doInvoke(core.clj:5981)
at clojure.lang.RestFn.applyTo(RestFn.java:145)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6044)
at clojure.core$load_libs.doInvoke(core.clj:6028)
at clojure.lang.RestFn.applyTo(RestFn.java:140)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6066)
at clojure.core$require.doInvoke(core.clj:6066)
at clojure.lang.RestFn.invoke(RestFn.java:622)
at metabase.analytics.settings$loading__6812__auto____51935.invoke(settings.clj:1)
at metabase.analytics.settings__init.load(Unknown Source)
at metabase.analytics.settings__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:543)
at clojure.lang.RT.classForName(RT.java:2229)
at clojure.lang.RT.classForName(RT.java:2238)
at clojure.lang.RT.loadClassForName(RT.java:2257)
at clojure.lang.RT.load(RT.java:469)
at clojure.lang.RT.load(RT.java:444)
at clojure.core$load$fn__6931.invoke(core.clj:6189)
at clojure.core$load.invokeStatic(core.clj:6188)
at clojure.core$load.doInvoke(core.clj:6172)
at clojure.lang.RestFn.invoke(RestFn.java:411)
at clojure.core$load_one.invokeStatic(core.clj:5961)
at clojure.core$load_one.invoke(core.clj:5956)
at clojure.core$load_lib$fn__6873.invoke(core.clj:6003)
at clojure.core$load_lib.invokeStatic(core.clj:6002)
at clojure.core$load_lib.doInvoke(core.clj:5981)
at clojure.lang.RestFn.applyTo(RestFn.java:145)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6044)
at clojure.core$load_libs.doInvoke(core.clj:6028)
at clojure.lang.RestFn.applyTo(RestFn.java:140)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6066)
at clojure.core$require.doInvoke(core.clj:6066)
at clojure.lang.RestFn.invoke(RestFn.java:1792)
at metabase.analytics.prometheus$loading__6812__auto____54828.invoke(prometheus.clj:1)
at metabase.analytics.prometheus__init.load(Unknown Source)
at metabase.analytics.prometheus__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:543)
at clojure.lang.RT.classForName(RT.java:2229)
at clojure.lang.RT.classForName(RT.java:2238)
at clojure.lang.RT.loadClassForName(RT.java:2257)
at clojure.lang.RT.load(RT.java:469)
at clojure.lang.RT.load(RT.java:444)
at clojure.core$load$fn__6931.invoke(core.clj:6189)
at clojure.core$load.invokeStatic(core.clj:6188)
at clojure.core$load.doInvoke(core.clj:6172)
at clojure.lang.RestFn.invoke(RestFn.java:411)
at clojure.core$load_one.invokeStatic(core.clj:5961)
at clojure.core$load_one.invoke(core.clj:5956)
at clojure.core$load_lib$fn__6873.invoke(core.clj:6003)
at clojure.core$load_lib.invokeStatic(core.clj:6002)
at clojure.core$load_lib.doInvoke(core.clj:5981)
at clojure.lang.RestFn.applyTo(RestFn.java:145)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6044)
at clojure.core$load_libs.doInvoke(core.clj:6028)
at clojure.lang.RestFn.applyTo(RestFn.java:140)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6066)
at clojure.core$require.doInvoke(core.clj:6066)
at clojure.lang.RestFn.invoke(RestFn.java:554)
at metabase.analytics.core$loading__6812__auto____56812.invoke(core.clj:1)
at metabase.analytics.core__init.load(Unknown Source)
at metabase.analytics.core__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:543)
at clojure.lang.RT.classForName(RT.java:2229)
at clojure.lang.RT.classForName(RT.java:2238)
at clojure.lang.RT.loadClassForName(RT.java:2257)
at clojure.lang.RT.load(RT.java:469)
at clojure.lang.RT.load(RT.java:444)
at clojure.core$load$fn__6931.invoke(core.clj:6189)
at clojure.core$load.invokeStatic(core.clj:6188)
at clojure.core$load.doInvoke(core.clj:6172)
at clojure.lang.RestFn.invoke(RestFn.java:411)
at clojure.core$load_one.invokeStatic(core.clj:5961)
at clojure.core$load_one.invoke(core.clj:5956)
at clojure.core$load_lib$fn__6873.invoke(core.clj:6003)
at clojure.core$load_lib.invokeStatic(core.clj:6002)
at clojure.core$load_lib.doInvoke(core.clj:5981)
at clojure.lang.RestFn.applyTo(RestFn.java:145)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6044)
at clojure.core$load_libs.doInvoke(core.clj:6028)
at clojure.lang.RestFn.applyTo(RestFn.java:140)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6066)
at clojure.core$require.doInvoke(core.clj:6066)
at clojure.lang.RestFn.invoke(RestFn.java:3897)
at metabase.core.core$loading__6812__auto____124742.invoke(core.clj:1)
at metabase.core.core__init.load(Unknown Source)
at metabase.core.core__init.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:543)
at clojure.lang.RT.classForName(RT.java:2229)
at clojure.lang.RT.classForName(RT.java:2238)
at clojure.lang.RT.loadClassForName(RT.java:2257)
at clojure.lang.RT.load(RT.java:469)
at clojure.lang.RT.load(RT.java:444)
at clojure.core$load$fn__6931.invoke(core.clj:6189)
at clojure.core$load.invokeStatic(core.clj:6188)
at clojure.core$load.doInvoke(core.clj:6172)
at clojure.lang.RestFn.invoke(RestFn.java:411)
at clojure.core$load_one.invokeStatic(core.clj:5961)
at clojure.core$load_one.invoke(core.clj:5956)
at clojure.core$load_lib$fn__6873.invoke(core.clj:6003)
at clojure.core$load_lib.invokeStatic(core.clj:6002)
at clojure.core$load_lib.doInvoke(core.clj:5981)
at clojure.lang.RestFn.applyTo(RestFn.java:145)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6044)
at clojure.core$load_libs.doInvoke(core.clj:6028)
at clojure.lang.RestFn.applyTo(RestFn.java:140)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6066)
at clojure.core$require.doInvoke(core.clj:6066)
at clojure.lang.RestFn.applyTo(RestFn.java:140)
at clojure.core$apply.invokeStatic(core.clj:667)
at clojure.core$serialized_require.invokeStatic(core.clj:6142)
at clojure.core$requiring_resolve.invokeStatic(core.clj:6151)
at clojure.core$requiring_resolve.invoke(core.clj:6145)
at metabase.core.bootstrap$_main.invokeStatic(bootstrap.clj:36)
at metabase.core.bootstrap$_main.doInvoke(bootstrap.clj:29)
at clojure.lang.RestFn.applyTo(RestFn.java:140)
at metabase.core.bootstrap.main(Unknown Source)