Upgrading for metabase v0.45.3 to v0.46.0 with h2 database

From what I understand from metabase logs, its changed the version of h2.

metabase_1 | 2023-06-10 09:25:55,247 INFO metabase.core :: Setting up and migrating Metabase DB. Please sit tight, this may take a minute...
metabase_1 | 2023-06-10 09:25:55,265 INFO db.setup :: Verifying h2 Database Connection ...
metabase_1 | 2023-06-10 09:25:55,376 INFO db.update-h2 :: H2 v1 database detected, updating...
metabase_1 | 2023-06-10 09:25:55,381 INFO db.update-h2 :: Downloading https://repo1.maven.org/maven2/com/h2database/h2/1.4.197/h2-1.4.197.jar
metabase_1 | 2023-06-10 09:25:57,764 INFO db.update-h2 :: Creating v1 database backup at /tmp/metabase-migrate-h2-db-v1-v2.sql
metabase_1 | 2023-06-10 09:27:06,110 INFO db.update-h2 :: Moving old app database to /metabase-data/metabase.db/metabase.db.v1-backup.mv.db
metabase_1 | 2023-06-10 09:27:06,115 INFO db.update-h2 :: Restoring backup into v2 database

During this process something is not migrating correctly..

metabase_1 | 2023-06-10 09:27:30,406 ERROR db.update-h2 :: Failed to update H2 database: #error {
metabase_1 | :cause General error: "org.h2.mvstore.MVStoreException: Reading from file sun.nio.ch.FileChannelImpl@2ba1b733 failed at 315536350 (length -1), read 0, remaining 1536 [2.1.212/1]"; SQL statement:
metabase_1 | INSERT INTO PUBLIC.QUERY(QUERY_HASH, AVERAGE_EXECUTION_TIME, QUERY) VALUES
metabase_1 | (X'0750a9124871325afe8708fbd6c6e7bccdfadc08b9f1fe0db1311a0866e8578f', 6553, '{"constraints":{"max-results":10000,"max-results-bare-rows":2000},"type":"native","middleware":{"js-int-to-string?":true},"native":{"template-tags":{"input":{"id":"8b7d7a2c-4039-056c-43f0-17a7aee144c7","name":"input","display-name":"User_Id/Phone_Number","type":"text"}},"query":"SELECT xpm_ccbp_users_sessions_feedback.\n\nFROM bq_views.xpm_ccbp_users_sessions_feedback_view AS xpm_ccbp_users_sessions_feedback \n\nLEFT JOIN bq_views.basic_user_details AS basic_user_details\n\nON replace(xpm_ccbp_users_sessions_feedback.user_id, "-", "") = replace(basic_user_details.account_id, "-", "")\n\nWHERE true AND\n\n(replace(xpm_ccbp_users_sessions_feedback.user_id, "-", "") = replace({{input}},"-","")\n\nOR \n\nbasic_user_details.phone_number = {{input}}\n)\n"},"database":99,"parameters":[{"type":"category","target":["variable",["template-tag","input"]],"value":"2e9a5cb6330f423385d2841a0ddf649f"}],"async?":true,"cache-ttl":null}'),
metabase_1 | (X'64873089a3537ce919f01be0325439c444dd2430e8c97bf2c0a90c1c662552a7', 4974, '{"constraints":{"max-results":10000,"max-results-bare-rows":2000},"type":"native","middleware":{"js-int-to-string?":true},"native":{"query":"SELECT \n\n user_id,\n phone_number,\n Round(SUM(unit_wise_total_time_spent)/60,2) AS total_learnings_in_hr,\n COUNTIF(overall_completion_percentage = 100) AS no_of_sets_completed,\n COUNTIF(overall_completion_percentage != 100) AS no_of_sets_partial_completed\n\nFROM (\n\n SELECT \n user_id,\n phone_number,\n unit_id,\n MAX(overall_completion_percentage) AS overall_completion_percentage,\n SUM(time_spent_in_mins) AS unit_wise_total_time_spent\n FROM bq_views.xpm_ccbp_users_day_wise_unit_wise_time_spent\n where date(xpm_ccbp_users_day_wise_unit_wise_time_spent.date) >= date(date_add(CURRENT_DATE(), INTERVAL -7 day)) -- To get details of maximum overall percentage and total time spent for unit of user in last 7 days\n GROUP BY user_id,phone_number, unit_id\n\n) AS user_wise_unit_wise_track_wise_total_learnings\nwhere true and\n(user_id = replace({{input}},"-","") or phone_number = {{input}})\n\nGROUP BY user_id,phone_number\n","template-tags":{"input":{"id":"c3a0589a-dea7-6d56-5566-2c2e134a1295","name":"input","display-name":"User_Id/Phone_Number","type":"text"}}},"database":99,"parameters":[{"type":"category","target":["variable",["template-tag","input"]],"value":"2e9a5cb6330f423385d2841a0ddf649f"}],"async?":true,"cache-ttl":null}'),
metabase_1 | (X'524abf04d63768e91704b5e54a473fc11ebee6e8411a471d59dbc41afccbe284', 7250, '{"constraints":{"max-results":10000,"max-results-bare-rows":2000},"type":"native","middleware":{"js-int-to-string?":true},"native":{"template-tags":{"input":{"id":"9071b7e0-38fe-42d0-ecca-5b062b93405a","name":"input","display-name":"User_Id/Phone_Number","type":"text"}},"query":"SELECT \n\n user_id,\n phone_number,\n program_name,\n custom_unit_type,\n ROUND(SUM(overall_time_spent_in_mins)/60,2) AS total_learnings_in_hr,\n COUNTIF(overall_completion_percentage = 100) AS no_of_sets_completed,\n COUNTIF(overall_completion_percentage != 100) AS no_of_sets_partial_completed\n\nFROM (\n\n SELECT \n user_id,\n phone_number,\n unit_id,\n CASE\n WHEN unit_type = "LEARNING_SET" THEN "Learning set"\n WHEN unit_type IN ("ASSIGNMENT","EXAM","PRACTICE","QUESTION_SET") THEN "Practice set" -- considering these unit types ("ASSIGNMENT","EXAM","PRACTICE","QUESTION_SET") as Practice set\n END AS custom_unit_type,\n program_name,\n MAX(overall_completion_percentage) AS overall_completion_percentage,\n SUM(time_spent_in_mins) AS overall_time_spent_in_mins\n \n FROM bq_views.xpm_ccbp_users_day_wise_unit_wise_time_spent\n \n GROUP BY user_id,phone_number, unit_id,unit_type,program_name \n\n) AS user_wise_unit_wise_track_wise_total_learnings -- To get details of maximum overall percentage and total time spent for program with unit type of user\n\nwhere true and\n(user_id = replace({{input}},"-","") or phone_number = {{input}})\n\nGROUP BY user_id,phone_number,custom_unit_type,program_name\norder by program_name\n"},"database":99,"parameters":[{"type":"category","target":["variable",["template-tag","input"]],"value":"2e9a5cb6330f423385d2841a0ddf649f"}],"async?":true,"cache-ttl":null}') [50000-212]
metabase_1 | :via
metabase_1 | [{:type org.h2.jdbc.JdbcBatchUpdateException
metabase_1 | :message General error: "org.h2.mvstore.MVStoreException: Reading from file sun.nio.ch.FileChannelImpl@2ba1b733 failed at 315536350 (length -1), read 0, remaining 1536 [2.1.212/1]"; SQL statement:
metabase_1 | INSERT INTO PUBLIC.QUERY(QUERY_HASH, AVERAGE_EXECUTION_TIME, QUERY) VALUES
metabase_1 | (X'0750a9124871325afe8708fbd6c6e7bccdfadc08b9f1fe0db1311a0866e8578f', 6553, '{"constraints":{"max-results":10000,"max-results-bare-rows":2000},"type":"native","middleware":{"js-int-to-string?":true},"native":{"template-tags":{"input":{"id":"8b7d7a2c-4039-056c-43f0-17a7aee144c7","name":"input","display-name":"User_Id/Phone_Number","type":"text"}},"query":"SELECT xpm_ccbp_users_sessions_feedback.
\n\nFROM bq_views.xpm_ccbp_users_sessions_feedback_view AS xpm_ccbp_users_sessions_feedback \n\nLEFT JOIN bq_views.basic_user_details AS basic_user_details\n\nON replace(xpm_ccbp_users_sessions_feedback.user_id, "-", "") = replace(basic_user_details.account_id, "-", "")\n\nWHERE true AND\n\n(replace(xpm_ccbp_users_sessions_feedback.user_id, "-", "") = replace({{input}},"-","")\n\nOR \n\nbasic_user_details.phone_number = {{input}}\n)\n"},"database":99,"parameters":[{"type":"category","target":["variable",["template-tag","input"]],"value":"2e9a5cb6330f423385d2841a0ddf649f"}],"async?":true,"cache-ttl":null}'),
metabase_1 | (X'64873089a3537ce919f01be0325439c444dd2430e8c97bf2c0a90c1c662552a7', 4974, '{"constraints":{"max-results":10000,"max-results-bare-rows":2000},"type":"native","middleware":{"js-int-to-string?":true},"native":{"query":"SELECT \n\n user_id,\n phone_number,\n Round(SUM(unit_wise_total_time_spent)/60,2) AS total_learnings_in_hr,\n COUNTIF(overall_completion_percentage = 100) AS no_of_sets_completed,\n COUNTIF(overall_completion_percentage != 100) AS no_of_sets_partial_completed\n\nFROM (\n\n SELECT \n user_id,\n phone_number,\n unit_id,\n MAX(overall_completion_percentage) AS overall_completion_percentage,\n SUM(time_spent_in_mins) AS unit_wise_total_time_spent\n FROM bq_views.xpm_ccbp_users_day_wise_unit_wise_time_spent\n where date(xpm_ccbp_users_day_wise_unit_wise_time_spent.date) >= date(date_add(CURRENT_DATE(), INTERVAL -7 day)) -- To get details of maximum overall percentage and total time spent for unit of user in last 7 days\n GROUP BY user_id,phone_number, unit_id\n\n) AS user_wise_unit_wise_track_wise_total_learnings\nwhere true and\n(user_id = replace({{input}},"-","") or phone_number = {{input}})\n\nGROUP BY user_id,phone_number\n","template-tags":{"input":{"id":"c3a0589a-dea7-6d56-5566-2c2e134a1295","name":"input","display-name":"User_Id/Phone_Number","type":"text"}}},"database":99,"parameters":[{"type":"category","target":["variable",["template-tag","input"]],"value":"2e9a5cb6330f423385d2841a0ddf649f"}],"async?":true,"cache-ttl":null}'),
metabase_1 | (X'524abf04d63768e91704b5e54a473fc11ebee6e8411a471d59dbc41afccbe284', 7250, '{"constraints":{"max-results":10000,"max-results-bare-rows":2000},"type":"native","middleware":{"js-int-to-string?":true},"native":{"template-tags":{"input":{"id":"9071b7e0-38fe-42d0-ecca-5b062b93405a","name":"input","display-name":"User_Id/Phone_Number","type":"text"}},"query":"SELECT \n\n user_id,\n phone_number,\n program_name,\n custom_unit_type,\n ROUND(SUM(overall_time_spent_in_mins)/60,2) AS total_learnings_in_hr,\n COUNTIF(overall_completion_percentage = 100) AS no_of_sets_completed,\n COUNTIF(overall_completion_percentage != 100) AS no_of_sets_partial_completed\n\nFROM (\n\n SELECT \n user_id,\n phone_number,\n unit_id,\n CASE\n WHEN unit_type = "LEARNING_SET" THEN "Learning set"\n WHEN unit_type IN ("ASSIGNMENT","EXAM","PRACTICE","QUESTION_SET") THEN "Practice set" -- considering these unit types ("ASSIGNMENT","EXAM","PRACTICE","QUESTION_SET") as Practice set\n END AS custom_unit_type,\n program_name,\n MAX(overall_completion_percentage) AS overall_completion_percentage,\n SUM(time_spent_in_mins) AS overall_time_spent_in_mins\n \n FROM bq_views.xpm_ccbp_users_day_wise_unit_wise_time_spent\n \n GROUP BY user_id,phone_number, unit_id,unit_type,program_name \n\n) AS user_wise_unit_wise_track_wise_total_learnings -- To get details of maximum overall percentage and total time spent for program with unit type of user\n\nwhere true and\n(user_id = replace({{input}},"-","") or phone_number = {{input}})\n\nGROUP BY user_id,phone_number,custom_unit_type,program_name\norder by program_name\n"},"database":99,"parameters":[{"type":"category","target":["variable",["template-tag","input"]],"value":"2e9a5cb6330f423385d2841a0ddf649f"}],"async?":true,"cache-ttl":null}') [50000-212]
metabase_1 | :at [org.h2.jdbc.JdbcPreparedStatement executeBatch JdbcPreparedStatement.java 1269]}]
metabase_1 | :trace
metabase_1 | [[org.h2.jdbc.JdbcPreparedStatement executeBatch JdbcPreparedStatement.java 1269]
metabase_1 | [clojure.java.jdbc$execute_batch invokeStatic jdbc.clj 598]
metabase_1 | [clojure.java.jdbc$execute_batch invoke jdbc.clj 591]
metabase_1 | [clojure.java.jdbc$db_do_execute_prepared_statement$fn__17906 invoke jdbc.clj 1057]
metabase_1 | [clojure.java.jdbc$db_transaction_STAR_ invokeStatic jdbc.clj 807]
metabase_1 | [clojure.java.jdbc$db_transaction_STAR_ invoke jdbc.clj 776]
metabase_1 | [clojure.java.jdbc$db_transaction_STAR_ invokeStatic jdbc.clj 789]
metabase_1 | [clojure.java.jdbc$db_transaction_STAR_ invoke jdbc.clj 776]
metabase_1 | [clojure.java.jdbc$db_do_execute_prepared_statement invokeStatic jdbc.clj 1056]
metabase_1 | [clojure.java.jdbc$db_do_execute_prepared_statement invoke jdbc.clj 1042]
metabase_1 | [clojure.java.jdbc$db_do_prepared invokeStatic jdbc.clj 1080]
metabase_1 | [clojure.java.jdbc$db_do_prepared invoke jdbc.clj 1060]
metabase_1 | [clojure.java.jdbc$execute_BANG_$execute_helper__17974 invoke jdbc.clj 1464]
metabase_1 | [clojure.java.jdbc$execute_BANG_ invokeStatic jdbc.clj 1468]
metabase_1 | [clojure.java.jdbc$execute_BANG_ invoke jdbc.clj 1435]
metabase_1 | [clojure.java.jdbc$execute_BANG_ invokeStatic jdbc.clj 1456]
metabase_1 | [clojure.java.jdbc$execute_BANG_ invoke jdbc.clj 1435]
metabase_1 | [metabase.db.update_h2$update_BANG_ invokeStatic update_h2.clj 85]
metabase_1 | [metabase.db.update_h2$update_BANG_ invoke update_h2.clj 68]
metabase_1 | [metabase.db.update_h2$update_if_needed invokeStatic update_h2.clj 98]
metabase_1 | [metabase.db.update_h2$update_if_needed invoke update_h2.clj 90]
metabase_1 | [metabase.db.data_source.DataSource getConnection data_source.clj 29]
metabase_1 | [com.mchange.v2.c3p0.WrapperConnectionPoolDataSource getPooledConnection WrapperConnectionPoolDataSource.java 161]
metabase_1 | [com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager acquireResource C3P0PooledConnectionPool.java 213]
metabase_1 | [com.mchange.v2.resourcepool.BasicResourcePool doAcquire BasicResourcePool.java 1176]
metabase_1 | [com.mchange.v2.resourcepool.BasicResourcePool doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess BasicResourcePool.java 1163]
metabase_1 | [com.mchange.v2.resourcepool.BasicResourcePool access$700 BasicResourcePool.java 44]
metabase_1 | [com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask run BasicResourcePool.java 1908]
metabase_1 | [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread run ThreadPoolAsynchronousRunner.java 696]]}
metabase_1 | Exception in thread "H2-save" org.h2.mvstore.MVStoreException: Reading from file sun.nio.ch.FileChannelImpl@2ba1b733 failed at 308111795 (length -1), read 0, remaining 384 [2.1.212/1]
metabase_1 | at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:1004)
metabase_1 | at org.h2.mvstore.DataUtils.readFully(DataUtils.java:470)
metabase_1 | at org.h2.mvstore.FileStore.readFully(FileStore.java:97)
metabase_1 | at org.h2.mvstore.Chunk.readBufferForPage(Chunk.java:422)
metabase_1 | at org.h2.mvstore.MVStore.readPage(MVStore.java:2581)
metabase_1 | at org.h2.mvstore.MVMap.readPage(MVMap.java:633)
metabase_1 | at org.h2.mvstore.Page$NonLeaf.getChildPage(Page.java:1125)
metabase_1 | at org.h2.mvstore.CursorPos.traverseDown(CursorPos.java:61)
metabase_1 | at org.h2.mvstore.MVMap.operate(MVMap.java:1770)
metabase_1 | at org.h2.mvstore.MVMap.remove(MVMap.java:518)
metabase_1 | at org.h2.mvstore.db.LobStorageMap.doRemoveLob(LobStorageMap.java:440)
metabase_1 | at org.h2.mvstore.db.LobStorageMap.cleanup(LobStorageMap.java:409)
metabase_1 | at org.h2.mvstore.MVStore.notifyCleaner(MVStore.java:2823)
metabase_1 | at org.h2.mvstore.MVStore.lambda$notifyAboutOldestVersion$11(MVStore.java:2808)
metabase_1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
metabase_1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
metabase_1 | at java.base/java.lang.Thread.run(Unknown Source)
metabase_1 | Caused by: java.nio.channels.ClosedChannelException
metabase_1 | at java.base/sun.nio.ch.FileChannelImpl.ensureOpen(Unknown Source)
metabase_1 | at java.base/sun.nio.ch.FileChannelImpl.read(Unknown Source)
metabase_1 | at org.h2.mvstore.DataUtils.readFully(DataUtils.java:456)
metabase_1 | ... 15 more

next logs

metabase_1 | 2023-06-10 09:27:30,591 INFO db.setup :: Successfully verified H2 2.1.212 (2022-04-09) application database connection. :white_check_mark:
metabase_1 | 2023-06-10 09:27:30,599 INFO db.setup :: Running Database Migrations...
metabase_1 | 2023-06-10 09:27:30,602 INFO db.setup :: Setting up Liquibase...
metabase_1 | Exception in thread "H2-save" org.h2.mvstore.MVStoreException: Reading from file sun.nio.ch.FileChannelImpl@2ba1b733 failed at 308108372 (length -1), read 0, remaining 384 [2.1.212/1]
metabase_1 | at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:1004)
metabase_1 | at org.h2.mvstore.DataUtils.readFully(DataUtils.java:470)
metabase_1 | at org.h2.mvstore.FileStore.readFully(FileStore.java:97)
metabase_1 | at org.h2.mvstore.Chunk.readBufferForPage(Chunk.java:422)
metabase_1 | at org.h2.mvstore.MVStore.readPage(MVStore.java:2581)
metabase_1 | at org.h2.mvstore.MVMap.readPage(MVMap.java:633)
metabase_1 | at org.h2.mvstore.Page$NonLeaf.getChildPage(Page.java:1125)
metabase_1 | at org.h2.mvstore.CursorPos.traverseDown(CursorPos.java:61)
metabase_1 | at org.h2.mvstore.MVMap.operate(MVMap.java:1770)
metabase_1 | at org.h2.mvstore.MVMap.remove(MVMap.java:518)
metabase_1 | at org.h2.mvstore.db.LobStorageMap.doRemoveLob(LobStorageMap.java:440)
metabase_1 | at org.h2.mvstore.db.LobStorageMap.cleanup(LobStorageMap.java:409)
metabase_1 | at org.h2.mvstore.MVStore.notifyCleaner(MVStore.java:2823)
metabase_1 | at org.h2.mvstore.MVStore.lambda$notifyAboutOldestVersion$11(MVStore.java:2808)
metabase_1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
metabase_1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
metabase_1 | at java.base/java.lang.Thread.run(Unknown Source)
metabase_1 | Caused by: java.nio.channels.ClosedChannelException
metabase_1 | at java.base/sun.nio.ch.FileChannelImpl.ensureOpen(Unknown Source)
metabase_1 | at java.base/sun.nio.ch.FileChannelImpl.read(Unknown Source)
metabase_1 | at org.h2.mvstore.DataUtils.readFully(DataUtils.java:456)
metabase_1 | ... 15 more

metabase_1 | 2023-06-10 09:27:31,314 ERROR metabase.core :: Metabase Initialization FAILED
metabase_1 | liquibase.exception.DatabaseException: Error executing SQL SELECT "MD5SUM" FROM "PUBLIC"."DATABASECHANGELOG" WHERE "MD5SUM" IS NOT NULL: The database has been closed [90098-212]

metabase_1 | 2023-06-10 09:27:31,385 INFO metabase.core :: Metabase Shutting Down ...
metabase_1 | 2023-06-10 09:27:31,386 INFO metabase.server :: Shutting Down Embedded Jetty Webserver
metabase_1 | 2023-06-10 09:27:31,409 INFO metabase.core :: Metabase Shutdown COMPLETE

Try using the latest JAR file 1.46.4 ... Also please move out of H2 as soon as you can since it's easy to get this kind of errors