diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index b26d167..3b2c4e8 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,13 +1,14 @@ // For format details, see https://aka.ms/devcontainer.json. For config options, see the // README at: https://github.com/devcontainers/templates/tree/main/src/docker-existing-dockerfile { - "name": "Existing Dockerfile", - "build": { - // Sets the run context to one level up instead of the .devcontainer folder. - // "context": "." - // Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename. - "dockerfile": "../Dockerfile" - }, + "name": "Existing Docker Compose (Extend)", + + "dockerComposeFile": [ + "../docker-compose.yml", + "docker-compose.yml" + ], + "service": "devcontainer", + "workspaceFolder": "/workspaces", // Features to add to the dev container. More info: https://containers.dev/features. // "features": {}, diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 127727f..9d8f109 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,6 +17,17 @@ jobs: ports: - 9000:9000 - 8123:8123 + + metabase: + image: metabase/metabase:v0.49.6 + ports: + - 3000:3000 + + cube: + image: cubejs/cube:latest + ports: + - 4000:4000 + - 15432:15432 runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -42,6 +53,10 @@ jobs: uses: kzzzr/mybi-dbt-action@v4 with: command: dbt build --full-refresh + - name: test cube api + uses: kzzzr/mybi-dbt-action@v4 + with: + command: curl http:cube:4000/api/v1/load?query={"measures": ["f_tracker.bounces"]} # - name: Setup tmate session # uses: mxschmitt/action-tmate@v3 # if: ${{ failure() }} diff --git a/Dockerfile b/Dockerfile index f612acc..0788919 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM fishtownanalytics/dbt:${DBT_VERSION} RUN set -ex \ && python -m pip install --upgrade pip setuptools \ - && python -m pip install --upgrade dbt-clickhouse numpy + && python -m pip install --upgrade dbt-clickhouse==1.4.0 dbt-core==1.4.6 numpy WORKDIR /usr/app/ ENV DBT_PROFILES_DIR=. diff --git a/docker-compose.yml b/docker-compose.yml index 4cd4c48..64fe16a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,7 +8,7 @@ services: - 8123:8123 metabase: - image: metabase/metabase:v0.44.6 + image: metabase/metabase:v0.49.6 volumes: - ./metabase/plugins:/plugins - ./metabase/metabase.db:/metabase.db/ @@ -27,3 +27,12 @@ services: - .env volumes: - .:/cube/conf + + devcontainer: + build: + context: . + args: + DBT_VERSION: 1.0.0 + entrypoint: ["tail", "-f", "/dev/null"] + volumes: + - .:/workspace diff --git a/metabase/metabase.db/metabase.db.mv.db b/metabase/metabase.db/metabase.db.mv.db index afda70a..bc10257 100644 Binary files a/metabase/metabase.db/metabase.db.mv.db and b/metabase/metabase.db/metabase.db.mv.db differ diff --git a/metabase/metabase.db/metabase.db.trace.db b/metabase/metabase.db/metabase.db.trace.db index 2264061..0b7d832 100644 --- a/metabase/metabase.db/metabase.db.trace.db +++ b/metabase/metabase.db/metabase.db.trace.db @@ -486,3 +486,1516 @@ org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic c at metabase.core$destroy_BANG_.invoke(core.clj:72) at clojure.lang.AFn.run(AFn.java:22) at java.base/java.lang.Thread.run(Unknown Source) +2024-04-05 19:13:32 jdbc[11]: exception +org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-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.message.DbException.get(DbException.java:144) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526) + at org.h2.jdbc.JdbcStatement.checkClosed(JdbcStatement.java:1201) + at org.h2.jdbc.JdbcPreparedStatement.checkClosed(JdbcPreparedStatement.java:1798) + at org.h2.jdbc.JdbcStatement.checkClosed(JdbcStatement.java:1175) + at org.h2.jdbc.JdbcPreparedStatement.setParameter(JdbcPreparedStatement.java:1556) + at org.h2.jdbc.JdbcPreparedStatement.setObject(JdbcPreparedStatement.java:534) + at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.setObject(NewProxyPreparedStatement.java:821) + at clojure.java.jdbc$fn__28355.invokeStatic(jdbc.clj:484) + at clojure.java.jdbc$fn__28355.invoke(jdbc.clj:481) + at clojure.java.jdbc$fn__28336$G__28331__28345.invoke(jdbc.clj:471) + at clojure.java.jdbc$dft_set_parameters.invokeStatic(jdbc.clj:495) + at clojure.java.jdbc$dft_set_parameters.invoke(jdbc.clj:490) + at clojure.java.jdbc$execute_query_with_params.invokeStatic(jdbc.clj:1089) + at clojure.java.jdbc$execute_query_with_params.invoke(jdbc.clj:1084) + at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1113) + 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 toucan.db$query.invokeStatic(db.clj:308) + at toucan.db$query.doInvoke(db.clj:304) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at toucan.db$simple_select.invokeStatic(db.clj:414) + at toucan.db$simple_select.invoke(db.clj:403) + at toucan.db$simple_select_one.invokeStatic(db.clj:440) + at toucan.db$simple_select_one.invoke(db.clj:429) + at toucan.db$select_one.invokeStatic(db.clj:670) + at toucan.db$select_one.doInvoke(db.clj:664) + at clojure.lang.RestFn.applyTo(RestFn.java:139) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at toucan.db$select_one_field.invokeStatic(db.clj:682) + at toucan.db$select_one_field.doInvoke(db.clj:675) + at clojure.lang.RestFn.invoke(RestFn.java:442) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invokeStatic(cache.clj:111) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invoke(cache.clj:92) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invokeStatic(cache.clj:161) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invoke(cache.clj:141) + at metabase.models.setting$db_or_cache_value.invokeStatic(setting.clj:417) + at metabase.models.setting$db_or_cache_value.invoke(setting.clj:404) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:458) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:472) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$fn__30570.invokeStatic(setting.clj:491) + at metabase.models.setting$fn__30570.invoke(setting.clj:489) + at clojure.lang.MultiFn.invoke(MultiFn.java:234) + at clojure.lang.Var.invoke(Var.java:388) + at metabase.util.i18n.impl$fn__1646$f__1647.invoke(impl.clj:188) + at metabase.util.i18n.impl$site_locale_from_setting.invokeStatic(impl.clj:199) + at metabase.util.i18n.impl$site_locale_from_setting.invoke(impl.clj:192) + at metabase.util.i18n$site_locale_string.invokeStatic(i18n.clj:37) + at metabase.util.i18n$site_locale_string.invoke(i18n.clj:32) + at metabase.util.i18n$site_locale.invokeStatic(i18n.clj:50) + at metabase.util.i18n$site_locale.invoke(i18n.clj:47) + at metabase.util.i18n$translate_site_locale.invokeStatic(i18n.clj:69) + at metabase.util.i18n$translate_site_locale.doInvoke(i18n.clj:66) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at clojure.lang.AFn.applyToHelper(AFn.java:154) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at metabase.util.i18n.SiteLocalizedString.toString(i18n.clj:94) + at clojure.core$str.invokeStatic(core.clj:555) + at clojure.core$str.invoke(core.clj:546) + at metabase.core$destroy_BANG_.invokeStatic(core.clj:75) + at metabase.core$destroy_BANG_.invoke(core.clj:72) + at clojure.lang.AFn.run(AFn.java:22) + at java.base/java.lang.Thread.run(Unknown Source) +2024-04-05 19:13:32 jdbc[11]: exception +org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-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.message.DbException.get(DbException.java:144) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502) + at org.h2.jdbc.JdbcConnection.getAutoCommit(JdbcConnection.java:476) + at com.mchange.v2.c3p0.impl.C3P0ImplUtils.resetTxnState(C3P0ImplUtils.java:245) + at com.mchange.v2.c3p0.impl.NewPooledConnection.reset(NewPooledConnection.java:461) + at com.mchange.v2.c3p0.impl.NewPooledConnection.markClosedProxyConnection(NewPooledConnection.java:417) + at com.mchange.v2.c3p0.impl.NewProxyConnection.close(NewProxyConnection.java:87) + 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 toucan.db$query.invokeStatic(db.clj:308) + at toucan.db$query.doInvoke(db.clj:304) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at toucan.db$simple_select.invokeStatic(db.clj:414) + at toucan.db$simple_select.invoke(db.clj:403) + at toucan.db$simple_select_one.invokeStatic(db.clj:440) + at toucan.db$simple_select_one.invoke(db.clj:429) + at toucan.db$select_one.invokeStatic(db.clj:670) + at toucan.db$select_one.doInvoke(db.clj:664) + at clojure.lang.RestFn.applyTo(RestFn.java:139) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at toucan.db$select_one_field.invokeStatic(db.clj:682) + at toucan.db$select_one_field.doInvoke(db.clj:675) + at clojure.lang.RestFn.invoke(RestFn.java:442) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invokeStatic(cache.clj:111) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invoke(cache.clj:92) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invokeStatic(cache.clj:161) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invoke(cache.clj:141) + at metabase.models.setting$db_or_cache_value.invokeStatic(setting.clj:417) + at metabase.models.setting$db_or_cache_value.invoke(setting.clj:404) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:458) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:472) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$fn__30570.invokeStatic(setting.clj:491) + at metabase.models.setting$fn__30570.invoke(setting.clj:489) + at clojure.lang.MultiFn.invoke(MultiFn.java:234) + at clojure.lang.Var.invoke(Var.java:388) + at metabase.util.i18n.impl$fn__1646$f__1647.invoke(impl.clj:188) + at metabase.util.i18n.impl$site_locale_from_setting.invokeStatic(impl.clj:199) + at metabase.util.i18n.impl$site_locale_from_setting.invoke(impl.clj:192) + at metabase.util.i18n$site_locale_string.invokeStatic(i18n.clj:37) + at metabase.util.i18n$site_locale_string.invoke(i18n.clj:32) + at metabase.util.i18n$site_locale.invokeStatic(i18n.clj:50) + at metabase.util.i18n$site_locale.invoke(i18n.clj:47) + at metabase.util.i18n$translate_site_locale.invokeStatic(i18n.clj:69) + at metabase.util.i18n$translate_site_locale.doInvoke(i18n.clj:66) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at clojure.lang.AFn.applyToHelper(AFn.java:154) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at metabase.util.i18n.SiteLocalizedString.toString(i18n.clj:94) + at clojure.core$str.invokeStatic(core.clj:555) + at clojure.core$str.invoke(core.clj:546) + at metabase.core$destroy_BANG_.invokeStatic(core.clj:75) + at metabase.core$destroy_BANG_.invoke(core.clj:72) + at clojure.lang.AFn.run(AFn.java:22) + at java.base/java.lang.Thread.run(Unknown Source) +2024-04-05 20:05:26 jdbc[6]: exception +org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-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.message.DbException.get(DbException.java:144) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502) + at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:302) + at com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:567) + at clojure.java.jdbc$prepare_statement.invokeStatic(jdbc.clj:679) + at clojure.java.jdbc$prepare_statement.invoke(jdbc.clj:626) + at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1112) + 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 toucan.db$query.invokeStatic(db.clj:308) + at toucan.db$query.doInvoke(db.clj:304) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at toucan.db$simple_select.invokeStatic(db.clj:414) + at toucan.db$simple_select.invoke(db.clj:403) + at toucan.db$simple_select_one.invokeStatic(db.clj:440) + at toucan.db$simple_select_one.invoke(db.clj:429) + at toucan.db$select_one.invokeStatic(db.clj:670) + at toucan.db$select_one.doInvoke(db.clj:664) + at clojure.lang.RestFn.applyTo(RestFn.java:139) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at toucan.db$select_one_field.invokeStatic(db.clj:682) + at toucan.db$select_one_field.doInvoke(db.clj:675) + at clojure.lang.RestFn.invoke(RestFn.java:442) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invokeStatic(cache.clj:111) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invoke(cache.clj:92) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invokeStatic(cache.clj:161) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invoke(cache.clj:141) + at metabase.models.setting$db_or_cache_value.invokeStatic(setting.clj:417) + at metabase.models.setting$db_or_cache_value.invoke(setting.clj:404) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:458) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:472) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$fn__30570.invokeStatic(setting.clj:491) + at metabase.models.setting$fn__30570.invoke(setting.clj:489) + at clojure.lang.MultiFn.invoke(MultiFn.java:234) + at clojure.lang.Var.invoke(Var.java:388) + at metabase.util.i18n.impl$fn__1646$f__1647.invoke(impl.clj:188) + at metabase.util.i18n.impl$site_locale_from_setting.invokeStatic(impl.clj:199) + at metabase.util.i18n.impl$site_locale_from_setting.invoke(impl.clj:192) + at metabase.util.i18n$site_locale_string.invokeStatic(i18n.clj:37) + at metabase.util.i18n$site_locale_string.invoke(i18n.clj:32) + at metabase.util.i18n$site_locale.invokeStatic(i18n.clj:50) + at metabase.util.i18n$site_locale.invoke(i18n.clj:47) + at metabase.util.i18n$translate_site_locale.invokeStatic(i18n.clj:69) + at metabase.util.i18n$translate_site_locale.doInvoke(i18n.clj:66) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at clojure.lang.AFn.applyToHelper(AFn.java:154) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at metabase.util.i18n.SiteLocalizedString.toString(i18n.clj:94) + at clojure.core$str.invokeStatic(core.clj:555) + at clojure.core$str.invoke(core.clj:546) + at metabase.core$destroy_BANG_.invokeStatic(core.clj:75) + at metabase.core$destroy_BANG_.invoke(core.clj:72) + at clojure.lang.AFn.run(AFn.java:22) + at java.base/java.lang.Thread.run(Unknown Source) +2024-04-05 20:05:26 jdbc[6]: exception +org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-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.message.DbException.get(DbException.java:144) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502) + at org.h2.jdbc.JdbcConnection.getAutoCommit(JdbcConnection.java:476) + at com.mchange.v2.c3p0.impl.C3P0ImplUtils.resetTxnState(C3P0ImplUtils.java:245) + at com.mchange.v2.c3p0.impl.NewPooledConnection.reset(NewPooledConnection.java:461) + at com.mchange.v2.c3p0.impl.NewPooledConnection.markClosedProxyConnection(NewPooledConnection.java:417) + at com.mchange.v2.c3p0.impl.NewProxyConnection.close(NewProxyConnection.java:87) + 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 toucan.db$query.invokeStatic(db.clj:308) + at toucan.db$query.doInvoke(db.clj:304) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at toucan.db$simple_select.invokeStatic(db.clj:414) + at toucan.db$simple_select.invoke(db.clj:403) + at toucan.db$simple_select_one.invokeStatic(db.clj:440) + at toucan.db$simple_select_one.invoke(db.clj:429) + at toucan.db$select_one.invokeStatic(db.clj:670) + at toucan.db$select_one.doInvoke(db.clj:664) + at clojure.lang.RestFn.applyTo(RestFn.java:139) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at toucan.db$select_one_field.invokeStatic(db.clj:682) + at toucan.db$select_one_field.doInvoke(db.clj:675) + at clojure.lang.RestFn.invoke(RestFn.java:442) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invokeStatic(cache.clj:111) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invoke(cache.clj:92) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invokeStatic(cache.clj:161) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invoke(cache.clj:141) + at metabase.models.setting$db_or_cache_value.invokeStatic(setting.clj:417) + at metabase.models.setting$db_or_cache_value.invoke(setting.clj:404) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:458) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:472) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$fn__30570.invokeStatic(setting.clj:491) + at metabase.models.setting$fn__30570.invoke(setting.clj:489) + at clojure.lang.MultiFn.invoke(MultiFn.java:234) + at clojure.lang.Var.invoke(Var.java:388) + at metabase.util.i18n.impl$fn__1646$f__1647.invoke(impl.clj:188) + at metabase.util.i18n.impl$site_locale_from_setting.invokeStatic(impl.clj:199) + at metabase.util.i18n.impl$site_locale_from_setting.invoke(impl.clj:192) + at metabase.util.i18n$site_locale_string.invokeStatic(i18n.clj:37) + at metabase.util.i18n$site_locale_string.invoke(i18n.clj:32) + at metabase.util.i18n$site_locale.invokeStatic(i18n.clj:50) + at metabase.util.i18n$site_locale.invoke(i18n.clj:47) + at metabase.util.i18n$translate_site_locale.invokeStatic(i18n.clj:69) + at metabase.util.i18n$translate_site_locale.doInvoke(i18n.clj:66) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at clojure.lang.AFn.applyToHelper(AFn.java:154) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at metabase.util.i18n.SiteLocalizedString.toString(i18n.clj:94) + at clojure.core$str.invokeStatic(core.clj:555) + at clojure.core$str.invoke(core.clj:546) + at metabase.core$destroy_BANG_.invokeStatic(core.clj:75) + at metabase.core$destroy_BANG_.invoke(core.clj:72) + at clojure.lang.AFn.run(AFn.java:22) + at java.base/java.lang.Thread.run(Unknown Source) +2024-04-19 14:08:46 jdbc[15]: exception +org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-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.message.DbException.get(DbException.java:144) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502) + at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:302) + at com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:567) + at clojure.java.jdbc$prepare_statement.invokeStatic(jdbc.clj:679) + at clojure.java.jdbc$prepare_statement.invoke(jdbc.clj:626) + at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1112) + 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 toucan.db$query.invokeStatic(db.clj:308) + at toucan.db$query.doInvoke(db.clj:304) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at toucan.db$simple_select.invokeStatic(db.clj:414) + at toucan.db$simple_select.invoke(db.clj:403) + at toucan.db$simple_select_one.invokeStatic(db.clj:440) + at toucan.db$simple_select_one.invoke(db.clj:429) + at toucan.db$select_one.invokeStatic(db.clj:670) + at toucan.db$select_one.doInvoke(db.clj:664) + at clojure.lang.RestFn.applyTo(RestFn.java:139) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at toucan.db$select_one_field.invokeStatic(db.clj:682) + at toucan.db$select_one_field.doInvoke(db.clj:675) + at clojure.lang.RestFn.invoke(RestFn.java:442) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invokeStatic(cache.clj:111) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invoke(cache.clj:92) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invokeStatic(cache.clj:161) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invoke(cache.clj:141) + at metabase.models.setting$db_or_cache_value.invokeStatic(setting.clj:417) + at metabase.models.setting$db_or_cache_value.invoke(setting.clj:404) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:458) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:472) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$fn__30570.invokeStatic(setting.clj:491) + at metabase.models.setting$fn__30570.invoke(setting.clj:489) + at clojure.lang.MultiFn.invoke(MultiFn.java:234) + at clojure.lang.Var.invoke(Var.java:388) + at metabase.util.i18n.impl$fn__1646$f__1647.invoke(impl.clj:188) + at metabase.util.i18n.impl$site_locale_from_setting.invokeStatic(impl.clj:199) + at metabase.util.i18n.impl$site_locale_from_setting.invoke(impl.clj:192) + at metabase.util.i18n$site_locale_string.invokeStatic(i18n.clj:37) + at metabase.util.i18n$site_locale_string.invoke(i18n.clj:32) + at metabase.util.i18n$site_locale.invokeStatic(i18n.clj:50) + at metabase.util.i18n$site_locale.invoke(i18n.clj:47) + at metabase.util.i18n$translate_site_locale.invokeStatic(i18n.clj:69) + at metabase.util.i18n$translate_site_locale.doInvoke(i18n.clj:66) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at clojure.lang.AFn.applyToHelper(AFn.java:154) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at metabase.util.i18n.SiteLocalizedString.toString(i18n.clj:94) + at clojure.core$str.invokeStatic(core.clj:555) + at clojure.core$str.invoke(core.clj:546) + at metabase.core$destroy_BANG_.invokeStatic(core.clj:75) + at metabase.core$destroy_BANG_.invoke(core.clj:72) + at clojure.lang.AFn.run(AFn.java:22) + at java.base/java.lang.Thread.run(Unknown Source) +2024-04-19 14:47:48 jdbc[15]: exception +org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-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.message.DbException.get(DbException.java:144) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502) + at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:302) + at com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:567) + at clojure.java.jdbc$prepare_statement.invokeStatic(jdbc.clj:679) + at clojure.java.jdbc$prepare_statement.invoke(jdbc.clj:626) + at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1112) + 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 toucan.db$query.invokeStatic(db.clj:308) + at toucan.db$query.doInvoke(db.clj:304) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at toucan.db$simple_select.invokeStatic(db.clj:414) + at toucan.db$simple_select.invoke(db.clj:403) + at toucan.db$simple_select_one.invokeStatic(db.clj:440) + at toucan.db$simple_select_one.invoke(db.clj:429) + at toucan.db$select_one.invokeStatic(db.clj:670) + at toucan.db$select_one.doInvoke(db.clj:664) + at clojure.lang.RestFn.applyTo(RestFn.java:139) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at toucan.db$select_one_field.invokeStatic(db.clj:682) + at toucan.db$select_one_field.doInvoke(db.clj:675) + at clojure.lang.RestFn.invoke(RestFn.java:442) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invokeStatic(cache.clj:111) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invoke(cache.clj:92) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invokeStatic(cache.clj:161) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invoke(cache.clj:141) + at metabase.models.setting$db_or_cache_value.invokeStatic(setting.clj:417) + at metabase.models.setting$db_or_cache_value.invoke(setting.clj:404) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:458) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:472) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$fn__30570.invokeStatic(setting.clj:491) + at metabase.models.setting$fn__30570.invoke(setting.clj:489) + at clojure.lang.MultiFn.invoke(MultiFn.java:234) + at clojure.lang.Var.invoke(Var.java:388) + at metabase.util.i18n.impl$fn__1646$f__1647.invoke(impl.clj:188) + at metabase.util.i18n.impl$site_locale_from_setting.invokeStatic(impl.clj:199) + at metabase.util.i18n.impl$site_locale_from_setting.invoke(impl.clj:192) + at metabase.util.i18n$site_locale_string.invokeStatic(i18n.clj:37) + at metabase.util.i18n$site_locale_string.invoke(i18n.clj:32) + at metabase.util.i18n$site_locale.invokeStatic(i18n.clj:50) + at metabase.util.i18n$site_locale.invoke(i18n.clj:47) + at metabase.util.i18n$translate_site_locale.invokeStatic(i18n.clj:69) + at metabase.util.i18n$translate_site_locale.doInvoke(i18n.clj:66) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at clojure.lang.AFn.applyToHelper(AFn.java:154) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at metabase.util.i18n.SiteLocalizedString.toString(i18n.clj:94) + at clojure.core$str.invokeStatic(core.clj:555) + at clojure.core$str.invoke(core.clj:546) + at metabase.core$destroy_BANG_.invokeStatic(core.clj:75) + at metabase.core$destroy_BANG_.invoke(core.clj:72) + at clojure.lang.AFn.run(AFn.java:22) + at java.base/java.lang.Thread.run(Unknown Source) +2024-04-19 14:47:48 jdbc[15]: exception +org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-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.message.DbException.get(DbException.java:144) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1526) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1502) + at org.h2.jdbc.JdbcConnection.getAutoCommit(JdbcConnection.java:476) + at com.mchange.v2.c3p0.impl.C3P0ImplUtils.resetTxnState(C3P0ImplUtils.java:245) + at com.mchange.v2.c3p0.impl.NewPooledConnection.reset(NewPooledConnection.java:461) + at com.mchange.v2.c3p0.impl.NewPooledConnection.markClosedProxyConnection(NewPooledConnection.java:417) + at com.mchange.v2.c3p0.impl.NewProxyConnection.close(NewProxyConnection.java:87) + 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 toucan.db$query.invokeStatic(db.clj:308) + at toucan.db$query.doInvoke(db.clj:304) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at toucan.db$simple_select.invokeStatic(db.clj:414) + at toucan.db$simple_select.invoke(db.clj:403) + at toucan.db$simple_select_one.invokeStatic(db.clj:440) + at toucan.db$simple_select_one.invoke(db.clj:429) + at toucan.db$select_one.invokeStatic(db.clj:670) + at toucan.db$select_one.doInvoke(db.clj:664) + at clojure.lang.RestFn.applyTo(RestFn.java:139) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at toucan.db$select_one_field.invokeStatic(db.clj:682) + at toucan.db$select_one_field.doInvoke(db.clj:675) + at clojure.lang.RestFn.invoke(RestFn.java:442) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invokeStatic(cache.clj:111) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invoke(cache.clj:92) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invokeStatic(cache.clj:161) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invoke(cache.clj:141) + at metabase.models.setting$db_or_cache_value.invokeStatic(setting.clj:417) + at metabase.models.setting$db_or_cache_value.invoke(setting.clj:404) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:458) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:472) + at metabase.models.setting$get_raw_value.invoke(setting.clj:432) + at metabase.models.setting$fn__30570.invokeStatic(setting.clj:491) + at metabase.models.setting$fn__30570.invoke(setting.clj:489) + at clojure.lang.MultiFn.invoke(MultiFn.java:234) + at clojure.lang.Var.invoke(Var.java:388) + at metabase.util.i18n.impl$fn__1646$f__1647.invoke(impl.clj:188) + at metabase.util.i18n.impl$site_locale_from_setting.invokeStatic(impl.clj:199) + at metabase.util.i18n.impl$site_locale_from_setting.invoke(impl.clj:192) + at metabase.util.i18n$site_locale_string.invokeStatic(i18n.clj:37) + at metabase.util.i18n$site_locale_string.invoke(i18n.clj:32) + at metabase.util.i18n$site_locale.invokeStatic(i18n.clj:50) + at metabase.util.i18n$site_locale.invoke(i18n.clj:47) + at metabase.util.i18n$translate_site_locale.invokeStatic(i18n.clj:69) + at metabase.util.i18n$translate_site_locale.doInvoke(i18n.clj:66) + at clojure.lang.RestFn.invoke(RestFn.java:410) + at clojure.lang.AFn.applyToHelper(AFn.java:154) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.core$apply.invokeStatic(core.clj:669) + at clojure.core$apply.invoke(core.clj:662) + at metabase.util.i18n.SiteLocalizedString.toString(i18n.clj:94) + at clojure.core$str.invokeStatic(core.clj:555) + at clojure.core$str.invoke(core.clj:546) + at metabase.core$destroy_BANG_.invokeStatic(core.clj:75) + at metabase.core$destroy_BANG_.invoke(core.clj:72) + at clojure.lang.AFn.run(AFn.java:22) + at java.base/java.lang.Thread.run(Unknown Source) +2024-04-19 14:54:31 jdbc[11]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:1013) + at com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:509) + at next.jdbc.prepare$create.invokeStatic(prepare.clj:121) + at next.jdbc.prepare$create.invoke(prepare.clj:84) + at next.jdbc.prepare$fn__26615.invokeStatic(prepare.clj:150) + at next.jdbc.prepare$fn__26615.invoke(prepare.clj:147) + at next.jdbc.protocols$fn__26359$G__26354__26368.invoke(protocols.clj:50) + at next.jdbc$prepare.invokeStatic(jdbc.clj:196) + at next.jdbc$prepare.invoke(jdbc.clj:178) + at toucan2.jdbc.query$reduce_jdbc_query.invokeStatic(query.clj:33) + at toucan2.jdbc.query$reduce_jdbc_query.invoke(query.clj:22) + at toucan2.query_execution_backend.jdbc$transduce_execute_with_connection_primary_method_java_sql_Connection_default_default.invokeStatic(jdbc.clj:21) + at toucan2.query_execution_backend.jdbc$transduce_execute_with_connection_primary_method_java_sql_Connection_default_default.invoke(jdbc.clj:11) + at clojure.lang.AFn.applyToHelper(AFn.java:178) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$partial$fn__5908.doInvoke(core.clj:2639) + at clojure.lang.RestFn.applyTo(RestFn.java:146) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:667) + at clojure.core$apply.invoke(core.clj:662) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23398.invoke(threaded.clj:79) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.doInvoke(core.clj:2589) + at clojure.lang.RestFn.applyTo(RestFn.java:146) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$apply.doInvoke(core.clj:662) + at clojure.lang.RestFn.invoke(RestFn.java:533) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.doInvoke(threaded.clj:46) + at clojure.lang.RestFn.applyTo(RestFn.java:151) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$apply.doInvoke(core.clj:662) + at clojure.lang.RestFn.invoke(RestFn.java:533) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:65) + at methodical.impl.standard$invoke_multifn.doInvoke(standard.clj:47) + at clojure.lang.RestFn.invoke(RestFn.java:594) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:199) + at toucan2.pipeline$transduce_execute$with_connection_STAR___28118.invoke(pipeline.clj:86) + at toucan2.connection$bind_current_connectable_fn$fn__27731.invoke(connection.clj:104) + at toucan2.connection$bind_current_connectable_fn$fn__27731.invoke(connection.clj:104) + at toucan2.connection$bind_current_connectable_fn$fn__27731.invoke(connection.clj:104) + at toucan2.connection$do_with_connection_primary_method_javax_sql_DataSource.invokeStatic(connection.clj:213) + at toucan2.connection$do_with_connection_primary_method_javax_sql_DataSource.invoke(connection.clj:210) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23392.invoke(threaded.clj:70) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.invoke(core.clj:2587) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.invoke(threaded.clj:43) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invokeStatic(connection.clj:118) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invoke(connection.clj:106) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:55) + at methodical.impl.standard$invoke_multifn.invoke(standard.clj:47) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:193) + at metabase.db.connection$do_with_connection_primary_method_default.invokeStatic(connection.clj:139) + at metabase.db.connection$do_with_connection_primary_method_default.invoke(connection.clj:137) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23392.invoke(threaded.clj:70) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.invoke(core.clj:2587) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.invoke(threaded.clj:43) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invokeStatic(connection.clj:118) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invoke(connection.clj:106) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:55) + at methodical.impl.standard$invoke_multifn.invoke(standard.clj:47) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:193) + at toucan2.connection$do_with_connection_primary_method_.invokeStatic(connection.clj:204) + at toucan2.connection$do_with_connection_primary_method_.invoke(connection.clj:194) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23392.invoke(threaded.clj:70) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.invoke(core.clj:2587) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.invoke(threaded.clj:43) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invokeStatic(connection.clj:118) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invoke(connection.clj:106) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:55) + at methodical.impl.standard$invoke_multifn.invoke(standard.clj:47) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:193) + at toucan2.pipeline$transduce_execute.invokeStatic(pipeline.clj:84) + at toucan2.pipeline$transduce_execute.invoke(pipeline.clj:70) + at clojure.lang.Var.invoke(Var.java:399) + at toucan2.pipeline$transduce_compiled_query.invokeStatic(pipeline.clj:278) + at toucan2.pipeline$transduce_compiled_query.invoke(pipeline.clj:274) + at toucan2.pipeline$transduce_built_query.invokeStatic(pipeline.clj:286) + at toucan2.pipeline$transduce_built_query.invoke(pipeline.clj:280) + at toucan2.pipeline$transduce_query_primary_method_default.invokeStatic(pipeline.clj:312) + at toucan2.pipeline$transduce_query_primary_method_default.invoke(pipeline.clj:309) + at clojure.lang.AFn.applyToHelper(AFn.java:178) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$partial$fn__5908.doInvoke(core.clj:2639) + at clojure.lang.RestFn.applyTo(RestFn.java:146) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:667) + at clojure.core$apply.invoke(core.clj:662) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23398.invoke(threaded.clj:79) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.doInvoke(core.clj:2589) + at clojure.lang.RestFn.applyTo(RestFn.java:146) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$apply.doInvoke(core.clj:662) + at clojure.lang.RestFn.invoke(RestFn.java:533) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.doInvoke(threaded.clj:46) + at clojure.lang.RestFn.applyTo(RestFn.java:151) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$apply.doInvoke(core.clj:662) + at clojure.lang.RestFn.invoke(RestFn.java:533) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:65) + at methodical.impl.standard$invoke_multifn.doInvoke(standard.clj:47) + at clojure.lang.RestFn.invoke(RestFn.java:594) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:199) + at toucan2.pipeline$transduce_query_STAR_.invokeStatic(pipeline.clj:318) + at toucan2.pipeline$transduce_query_STAR_.invoke(pipeline.clj:314) + at toucan2.pipeline$transduce_with_model.invokeStatic(pipeline.clj:333) + at toucan2.pipeline$transduce_with_model.invoke(pipeline.clj:320) + at toucan2.pipeline$transduce_parsed.invokeStatic(pipeline.clj:349) + at toucan2.pipeline$transduce_parsed.invoke(pipeline.clj:335) + at toucan2.pipeline$transduce_unparsed.invokeStatic(pipeline.clj:357) + at toucan2.pipeline$transduce_unparsed.invoke(pipeline.clj:351) + at toucan2.select$select_one_fn.invokeStatic(select.clj:116) + at toucan2.select$select_one_fn.doInvoke(select.clj:102) + at clojure.lang.RestFn.invoke(RestFn.java:439) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invokeStatic(cache.clj:114) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invoke(cache.clj:95) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invokeStatic(cache.clj:164) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invoke(cache.clj:144) + at metabase.models.setting$db_or_cache_value.invokeStatic(setting.clj:505) + at metabase.models.setting$db_or_cache_value.invoke(setting.clj:491) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:546) + at metabase.models.setting$get_raw_value.invoke(setting.clj:520) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:560) + at metabase.models.setting$get_raw_value.invoke(setting.clj:520) + at metabase.models.setting$fn__46869.invokeStatic(setting.clj:579) + at metabase.models.setting$fn__46869.invoke(setting.clj:577) + at clojure.lang.MultiFn.invoke(MultiFn.java:234) + at clojure.lang.Var.invoke(Var.java:388) + at metabase.util.i18n.impl$site_locale_from_setting.invokeStatic(impl.clj:222) + at metabase.util.i18n.impl$site_locale_from_setting.invoke(impl.clj:210) + at metabase.util.i18n$site_locale_string.invokeStatic(i18n.clj:41) + at metabase.util.i18n$site_locale_string.invoke(i18n.clj:36) + at metabase.util.i18n$site_locale.invokeStatic(i18n.clj:54) + at metabase.util.i18n$site_locale.invoke(i18n.clj:51) + at metabase.util.i18n$translate_site_locale.invokeStatic(i18n.clj:73) + at metabase.util.i18n$translate_site_locale.invoke(i18n.clj:70) + at metabase.util.i18n.SiteLocalizedString.toString(i18n.clj:98) + at clojure.core$str.invokeStatic(core.clj:555) + at clojure.core$str.invoke(core.clj:546) + at metabase.core$destroy_BANG_.invokeStatic(core.clj:86) + at metabase.core$destroy_BANG_.invoke(core.clj:83) + at clojure.lang.AFn.run(AFn.java:22) + at java.base/java.lang.Thread.run(Unknown Source) +2024-04-19 14:54:31 jdbc[11]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.getAutoCommit(JdbcConnection.java:423) + at com.mchange.v2.c3p0.impl.C3P0ImplUtils.resetTxnState(C3P0ImplUtils.java:245) + at com.mchange.v2.c3p0.impl.NewPooledConnection.reset(NewPooledConnection.java:461) + at com.mchange.v2.c3p0.impl.NewPooledConnection.markClosedProxyConnection(NewPooledConnection.java:417) + at com.mchange.v2.c3p0.impl.NewProxyConnection.close(NewProxyConnection.java:87) + at toucan2.connection$do_with_connection_primary_method_javax_sql_DataSource.invokeStatic(connection.clj:212) + at toucan2.connection$do_with_connection_primary_method_javax_sql_DataSource.invoke(connection.clj:210) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23392.invoke(threaded.clj:70) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.invoke(core.clj:2587) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.invoke(threaded.clj:43) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invokeStatic(connection.clj:118) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invoke(connection.clj:106) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:55) + at methodical.impl.standard$invoke_multifn.invoke(standard.clj:47) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:193) + at metabase.db.connection$do_with_connection_primary_method_default.invokeStatic(connection.clj:139) + at metabase.db.connection$do_with_connection_primary_method_default.invoke(connection.clj:137) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23392.invoke(threaded.clj:70) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.invoke(core.clj:2587) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.invoke(threaded.clj:43) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invokeStatic(connection.clj:118) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invoke(connection.clj:106) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:55) + at methodical.impl.standard$invoke_multifn.invoke(standard.clj:47) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:193) + at toucan2.connection$do_with_connection_primary_method_.invokeStatic(connection.clj:204) + at toucan2.connection$do_with_connection_primary_method_.invoke(connection.clj:194) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23392.invoke(threaded.clj:70) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.invoke(core.clj:2587) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.invoke(threaded.clj:43) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invokeStatic(connection.clj:118) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invoke(connection.clj:106) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:55) + at methodical.impl.standard$invoke_multifn.invoke(standard.clj:47) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:193) + at toucan2.pipeline$transduce_execute.invokeStatic(pipeline.clj:84) + at toucan2.pipeline$transduce_execute.invoke(pipeline.clj:70) + at clojure.lang.Var.invoke(Var.java:399) + at toucan2.pipeline$transduce_compiled_query.invokeStatic(pipeline.clj:278) + at toucan2.pipeline$transduce_compiled_query.invoke(pipeline.clj:274) + at toucan2.pipeline$transduce_built_query.invokeStatic(pipeline.clj:286) + at toucan2.pipeline$transduce_built_query.invoke(pipeline.clj:280) + at toucan2.pipeline$transduce_query_primary_method_default.invokeStatic(pipeline.clj:312) + at toucan2.pipeline$transduce_query_primary_method_default.invoke(pipeline.clj:309) + at clojure.lang.AFn.applyToHelper(AFn.java:178) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$partial$fn__5908.doInvoke(core.clj:2639) + at clojure.lang.RestFn.applyTo(RestFn.java:146) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:667) + at clojure.core$apply.invoke(core.clj:662) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23398.invoke(threaded.clj:79) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.doInvoke(core.clj:2589) + at clojure.lang.RestFn.applyTo(RestFn.java:146) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$apply.doInvoke(core.clj:662) + at clojure.lang.RestFn.invoke(RestFn.java:533) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.doInvoke(threaded.clj:46) + at clojure.lang.RestFn.applyTo(RestFn.java:151) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$apply.doInvoke(core.clj:662) + at clojure.lang.RestFn.invoke(RestFn.java:533) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:65) + at methodical.impl.standard$invoke_multifn.doInvoke(standard.clj:47) + at clojure.lang.RestFn.invoke(RestFn.java:594) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:199) + at toucan2.pipeline$transduce_query_STAR_.invokeStatic(pipeline.clj:318) + at toucan2.pipeline$transduce_query_STAR_.invoke(pipeline.clj:314) + at toucan2.pipeline$transduce_with_model.invokeStatic(pipeline.clj:333) + at toucan2.pipeline$transduce_with_model.invoke(pipeline.clj:320) + at toucan2.pipeline$transduce_parsed.invokeStatic(pipeline.clj:349) + at toucan2.pipeline$transduce_parsed.invoke(pipeline.clj:335) + at toucan2.pipeline$transduce_unparsed.invokeStatic(pipeline.clj:357) + at toucan2.pipeline$transduce_unparsed.invoke(pipeline.clj:351) + at toucan2.select$select_one_fn.invokeStatic(select.clj:116) + at toucan2.select$select_one_fn.doInvoke(select.clj:102) + at clojure.lang.RestFn.invoke(RestFn.java:439) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invokeStatic(cache.clj:114) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invoke(cache.clj:95) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invokeStatic(cache.clj:164) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invoke(cache.clj:144) + at metabase.models.setting$db_or_cache_value.invokeStatic(setting.clj:505) + at metabase.models.setting$db_or_cache_value.invoke(setting.clj:491) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:546) + at metabase.models.setting$get_raw_value.invoke(setting.clj:520) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:560) + at metabase.models.setting$get_raw_value.invoke(setting.clj:520) + at metabase.models.setting$fn__46869.invokeStatic(setting.clj:579) + at metabase.models.setting$fn__46869.invoke(setting.clj:577) + at clojure.lang.MultiFn.invoke(MultiFn.java:234) + at clojure.lang.Var.invoke(Var.java:388) + at metabase.util.i18n.impl$site_locale_from_setting.invokeStatic(impl.clj:222) + at metabase.util.i18n.impl$site_locale_from_setting.invoke(impl.clj:210) + at metabase.util.i18n$site_locale_string.invokeStatic(i18n.clj:41) + at metabase.util.i18n$site_locale_string.invoke(i18n.clj:36) + at metabase.util.i18n$site_locale.invokeStatic(i18n.clj:54) + at metabase.util.i18n$site_locale.invoke(i18n.clj:51) + at metabase.util.i18n$translate_site_locale.invokeStatic(i18n.clj:73) + at metabase.util.i18n$translate_site_locale.invoke(i18n.clj:70) + at metabase.util.i18n.SiteLocalizedString.toString(i18n.clj:98) + at clojure.core$str.invokeStatic(core.clj:555) + at clojure.core$str.invoke(core.clj:546) + at metabase.core$destroy_BANG_.invokeStatic(core.clj:86) + at metabase.core$destroy_BANG_.invoke(core.clj:83) + at clojure.lang.AFn.run(AFn.java:22) + at java.base/java.lang.Thread.run(Unknown Source) +2024-04-19 14:59:09 jdbc[8]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:1013) + at com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:509) + at next.jdbc.prepare$create.invokeStatic(prepare.clj:121) + at next.jdbc.prepare$create.invoke(prepare.clj:84) + at next.jdbc.prepare$fn__26615.invokeStatic(prepare.clj:150) + at next.jdbc.prepare$fn__26615.invoke(prepare.clj:147) + at next.jdbc.protocols$fn__26359$G__26354__26368.invoke(protocols.clj:50) + at next.jdbc$prepare.invokeStatic(jdbc.clj:196) + at next.jdbc$prepare.invoke(jdbc.clj:178) + at toucan2.jdbc.query$reduce_jdbc_query.invokeStatic(query.clj:33) + at toucan2.jdbc.query$reduce_jdbc_query.invoke(query.clj:22) + at toucan2.query_execution_backend.jdbc$transduce_execute_with_connection_primary_method_java_sql_Connection_default_default.invokeStatic(jdbc.clj:21) + at toucan2.query_execution_backend.jdbc$transduce_execute_with_connection_primary_method_java_sql_Connection_default_default.invoke(jdbc.clj:11) + at clojure.lang.AFn.applyToHelper(AFn.java:178) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$partial$fn__5908.doInvoke(core.clj:2639) + at clojure.lang.RestFn.applyTo(RestFn.java:146) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:667) + at clojure.core$apply.invoke(core.clj:662) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23398.invoke(threaded.clj:79) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.doInvoke(core.clj:2589) + at clojure.lang.RestFn.applyTo(RestFn.java:146) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$apply.doInvoke(core.clj:662) + at clojure.lang.RestFn.invoke(RestFn.java:533) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.doInvoke(threaded.clj:46) + at clojure.lang.RestFn.applyTo(RestFn.java:151) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$apply.doInvoke(core.clj:662) + at clojure.lang.RestFn.invoke(RestFn.java:533) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:65) + at methodical.impl.standard$invoke_multifn.doInvoke(standard.clj:47) + at clojure.lang.RestFn.invoke(RestFn.java:594) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:199) + at toucan2.pipeline$transduce_execute$with_connection_STAR___28118.invoke(pipeline.clj:86) + at toucan2.connection$bind_current_connectable_fn$fn__27731.invoke(connection.clj:104) + at toucan2.connection$bind_current_connectable_fn$fn__27731.invoke(connection.clj:104) + at toucan2.connection$bind_current_connectable_fn$fn__27731.invoke(connection.clj:104) + at toucan2.connection$do_with_connection_primary_method_javax_sql_DataSource.invokeStatic(connection.clj:213) + at toucan2.connection$do_with_connection_primary_method_javax_sql_DataSource.invoke(connection.clj:210) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23392.invoke(threaded.clj:70) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.invoke(core.clj:2587) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.invoke(threaded.clj:43) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invokeStatic(connection.clj:118) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invoke(connection.clj:106) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:55) + at methodical.impl.standard$invoke_multifn.invoke(standard.clj:47) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:193) + at metabase.db.connection$do_with_connection_primary_method_default.invokeStatic(connection.clj:139) + at metabase.db.connection$do_with_connection_primary_method_default.invoke(connection.clj:137) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23392.invoke(threaded.clj:70) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.invoke(core.clj:2587) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.invoke(threaded.clj:43) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invokeStatic(connection.clj:118) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invoke(connection.clj:106) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:55) + at methodical.impl.standard$invoke_multifn.invoke(standard.clj:47) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:193) + at toucan2.connection$do_with_connection_primary_method_.invokeStatic(connection.clj:204) + at toucan2.connection$do_with_connection_primary_method_.invoke(connection.clj:194) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23392.invoke(threaded.clj:70) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.invoke(core.clj:2587) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.invoke(threaded.clj:43) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invokeStatic(connection.clj:118) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invoke(connection.clj:106) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:55) + at methodical.impl.standard$invoke_multifn.invoke(standard.clj:47) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:193) + at toucan2.pipeline$transduce_execute.invokeStatic(pipeline.clj:84) + at toucan2.pipeline$transduce_execute.invoke(pipeline.clj:70) + at clojure.lang.Var.invoke(Var.java:399) + at toucan2.pipeline$transduce_compiled_query.invokeStatic(pipeline.clj:278) + at toucan2.pipeline$transduce_compiled_query.invoke(pipeline.clj:274) + at toucan2.pipeline$transduce_built_query.invokeStatic(pipeline.clj:286) + at toucan2.pipeline$transduce_built_query.invoke(pipeline.clj:280) + at toucan2.pipeline$transduce_query_primary_method_default.invokeStatic(pipeline.clj:312) + at toucan2.pipeline$transduce_query_primary_method_default.invoke(pipeline.clj:309) + at clojure.lang.AFn.applyToHelper(AFn.java:178) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$partial$fn__5908.doInvoke(core.clj:2639) + at clojure.lang.RestFn.applyTo(RestFn.java:146) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:667) + at clojure.core$apply.invoke(core.clj:662) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23398.invoke(threaded.clj:79) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.doInvoke(core.clj:2589) + at clojure.lang.RestFn.applyTo(RestFn.java:146) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$apply.doInvoke(core.clj:662) + at clojure.lang.RestFn.invoke(RestFn.java:533) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.doInvoke(threaded.clj:46) + at clojure.lang.RestFn.applyTo(RestFn.java:151) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$apply.doInvoke(core.clj:662) + at clojure.lang.RestFn.invoke(RestFn.java:533) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:65) + at methodical.impl.standard$invoke_multifn.doInvoke(standard.clj:47) + at clojure.lang.RestFn.invoke(RestFn.java:594) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:199) + at toucan2.pipeline$transduce_query_STAR_.invokeStatic(pipeline.clj:318) + at toucan2.pipeline$transduce_query_STAR_.invoke(pipeline.clj:314) + at toucan2.pipeline$transduce_with_model.invokeStatic(pipeline.clj:333) + at toucan2.pipeline$transduce_with_model.invoke(pipeline.clj:320) + at toucan2.pipeline$transduce_parsed.invokeStatic(pipeline.clj:349) + at toucan2.pipeline$transduce_parsed.invoke(pipeline.clj:335) + at toucan2.pipeline$transduce_unparsed.invokeStatic(pipeline.clj:357) + at toucan2.pipeline$transduce_unparsed.invoke(pipeline.clj:351) + at toucan2.select$select_one_fn.invokeStatic(select.clj:116) + at toucan2.select$select_one_fn.doInvoke(select.clj:102) + at clojure.lang.RestFn.invoke(RestFn.java:439) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invokeStatic(cache.clj:114) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invoke(cache.clj:95) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invokeStatic(cache.clj:164) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invoke(cache.clj:144) + at metabase.models.setting$db_or_cache_value.invokeStatic(setting.clj:505) + at metabase.models.setting$db_or_cache_value.invoke(setting.clj:491) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:546) + at metabase.models.setting$get_raw_value.invoke(setting.clj:520) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:560) + at metabase.models.setting$get_raw_value.invoke(setting.clj:520) + at metabase.models.setting$fn__46869.invokeStatic(setting.clj:579) + at metabase.models.setting$fn__46869.invoke(setting.clj:577) + at clojure.lang.MultiFn.invoke(MultiFn.java:234) + at clojure.lang.Var.invoke(Var.java:388) + at metabase.util.i18n.impl$site_locale_from_setting.invokeStatic(impl.clj:222) + at metabase.util.i18n.impl$site_locale_from_setting.invoke(impl.clj:210) + at metabase.util.i18n$site_locale_string.invokeStatic(i18n.clj:41) + at metabase.util.i18n$site_locale_string.invoke(i18n.clj:36) + at metabase.util.i18n$site_locale.invokeStatic(i18n.clj:54) + at metabase.util.i18n$site_locale.invoke(i18n.clj:51) + at metabase.util.i18n$translate_site_locale.invokeStatic(i18n.clj:73) + at metabase.util.i18n$translate_site_locale.invoke(i18n.clj:70) + at metabase.util.i18n.SiteLocalizedString.toString(i18n.clj:98) + at clojure.core$str.invokeStatic(core.clj:555) + at clojure.core$str.invoke(core.clj:546) + at metabase.core$destroy_BANG_.invokeStatic(core.clj:86) + at metabase.core$destroy_BANG_.invoke(core.clj:83) + at clojure.lang.AFn.run(AFn.java:22) + at java.base/java.lang.Thread.run(Unknown Source) +2024-04-19 14:59:09 jdbc[8]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.getAutoCommit(JdbcConnection.java:423) + at com.mchange.v2.c3p0.impl.C3P0ImplUtils.resetTxnState(C3P0ImplUtils.java:245) + at com.mchange.v2.c3p0.impl.NewPooledConnection.reset(NewPooledConnection.java:461) + at com.mchange.v2.c3p0.impl.NewPooledConnection.markClosedProxyConnection(NewPooledConnection.java:417) + at com.mchange.v2.c3p0.impl.NewProxyConnection.close(NewProxyConnection.java:87) + at toucan2.connection$do_with_connection_primary_method_javax_sql_DataSource.invokeStatic(connection.clj:212) + at toucan2.connection$do_with_connection_primary_method_javax_sql_DataSource.invoke(connection.clj:210) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23392.invoke(threaded.clj:70) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.invoke(core.clj:2587) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.invoke(threaded.clj:43) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invokeStatic(connection.clj:118) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invoke(connection.clj:106) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:55) + at methodical.impl.standard$invoke_multifn.invoke(standard.clj:47) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:193) + at metabase.db.connection$do_with_connection_primary_method_default.invokeStatic(connection.clj:139) + at metabase.db.connection$do_with_connection_primary_method_default.invoke(connection.clj:137) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23392.invoke(threaded.clj:70) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.invoke(core.clj:2587) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.invoke(threaded.clj:43) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invokeStatic(connection.clj:118) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invoke(connection.clj:106) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:55) + at methodical.impl.standard$invoke_multifn.invoke(standard.clj:47) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:193) + at toucan2.connection$do_with_connection_primary_method_.invokeStatic(connection.clj:204) + at toucan2.connection$do_with_connection_primary_method_.invoke(connection.clj:194) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23392.invoke(threaded.clj:70) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.invoke(core.clj:2587) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.invoke(threaded.clj:43) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invokeStatic(connection.clj:118) + at toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invoke(connection.clj:106) + at clojure.lang.AFn.applyToHelper(AFn.java:160) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:436) + at clojure.core$partial$fn__5908.invoke(core.clj:2642) + at clojure.lang.AFn.applyToHelper(AFn.java:156) + at clojure.lang.RestFn.applyTo(RestFn.java:132) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.invoke(RestFn.java:421) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:55) + at methodical.impl.standard$invoke_multifn.invoke(standard.clj:47) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:193) + at toucan2.pipeline$transduce_execute.invokeStatic(pipeline.clj:84) + at toucan2.pipeline$transduce_execute.invoke(pipeline.clj:70) + at clojure.lang.Var.invoke(Var.java:399) + at toucan2.pipeline$transduce_compiled_query.invokeStatic(pipeline.clj:278) + at toucan2.pipeline$transduce_compiled_query.invoke(pipeline.clj:274) + at toucan2.pipeline$transduce_built_query.invokeStatic(pipeline.clj:286) + at toucan2.pipeline$transduce_built_query.invoke(pipeline.clj:280) + at toucan2.pipeline$transduce_query_primary_method_default.invokeStatic(pipeline.clj:312) + at toucan2.pipeline$transduce_query_primary_method_default.invoke(pipeline.clj:309) + at clojure.lang.AFn.applyToHelper(AFn.java:178) + at clojure.lang.AFn.applyTo(AFn.java:144) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$partial$fn__5908.doInvoke(core.clj:2639) + at clojure.lang.RestFn.applyTo(RestFn.java:146) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:667) + at clojure.core$apply.invoke(core.clj:662) + at methodical.impl.combo.threaded$fn__23390$fn__23391$fn__23398.invoke(threaded.clj:79) + at methodical.impl.combo.threaded$reducer_fn$fn__23360$fn__23364.invoke(threaded.clj:23) + at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) + at clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136) + at clojure.core.protocols$fn__8244.invoke(protocols.clj:124) + at clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19) + at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) + at clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75) + at clojure.core.protocols$fn__8236.invoke(protocols.clj:75) + at clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13) + at clojure.core$reduce.invokeStatic(core.clj:6886) + at clojure.core$reduce.invoke(core.clj:6868) + at methodical.impl.combo.threaded$reducer_fn$fn__23360.invoke(threaded.clj:21) + at clojure.core$comp$fn__5876.doInvoke(core.clj:2589) + at clojure.lang.RestFn.applyTo(RestFn.java:146) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$apply.doInvoke(core.clj:662) + at clojure.lang.RestFn.invoke(RestFn.java:533) + at methodical.impl.combo.threaded$combine_with_threader$fn__23370.doInvoke(threaded.clj:46) + at clojure.lang.RestFn.applyTo(RestFn.java:151) + at clojure.lang.AFunction$1.doInvoke(AFunction.java:31) + at clojure.lang.RestFn.applyTo(RestFn.java:137) + at clojure.core$apply.invokeStatic(core.clj:675) + at clojure.core$apply.doInvoke(core.clj:662) + at clojure.lang.RestFn.invoke(RestFn.java:533) + at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:65) + at methodical.impl.standard$invoke_multifn.doInvoke(standard.clj:47) + at clojure.lang.RestFn.invoke(RestFn.java:594) + at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:199) + at toucan2.pipeline$transduce_query_STAR_.invokeStatic(pipeline.clj:318) + at toucan2.pipeline$transduce_query_STAR_.invoke(pipeline.clj:314) + at toucan2.pipeline$transduce_with_model.invokeStatic(pipeline.clj:333) + at toucan2.pipeline$transduce_with_model.invoke(pipeline.clj:320) + at toucan2.pipeline$transduce_parsed.invokeStatic(pipeline.clj:349) + at toucan2.pipeline$transduce_parsed.invoke(pipeline.clj:335) + at toucan2.pipeline$transduce_unparsed.invokeStatic(pipeline.clj:357) + at toucan2.pipeline$transduce_unparsed.invoke(pipeline.clj:351) + at toucan2.select$select_one_fn.invokeStatic(select.clj:116) + at toucan2.select$select_one_fn.doInvoke(select.clj:102) + at clojure.lang.RestFn.invoke(RestFn.java:439) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invokeStatic(cache.clj:114) + at metabase.models.setting.cache$cache_out_of_date_QMARK_.invoke(cache.clj:95) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invokeStatic(cache.clj:164) + at metabase.models.setting.cache$restore_cache_if_needed_BANG_.invoke(cache.clj:144) + at metabase.models.setting$db_or_cache_value.invokeStatic(setting.clj:505) + at metabase.models.setting$db_or_cache_value.invoke(setting.clj:491) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:546) + at metabase.models.setting$get_raw_value.invoke(setting.clj:520) + at metabase.models.setting$get_raw_value.invokeStatic(setting.clj:560) + at metabase.models.setting$get_raw_value.invoke(setting.clj:520) + at metabase.models.setting$fn__46869.invokeStatic(setting.clj:579) + at metabase.models.setting$fn__46869.invoke(setting.clj:577) + at clojure.lang.MultiFn.invoke(MultiFn.java:234) + at clojure.lang.Var.invoke(Var.java:388) + at metabase.util.i18n.impl$site_locale_from_setting.invokeStatic(impl.clj:222) + at metabase.util.i18n.impl$site_locale_from_setting.invoke(impl.clj:210) + at metabase.util.i18n$site_locale_string.invokeStatic(i18n.clj:41) + at metabase.util.i18n$site_locale_string.invoke(i18n.clj:36) + at metabase.util.i18n$site_locale.invokeStatic(i18n.clj:54) + at metabase.util.i18n$site_locale.invoke(i18n.clj:51) + at metabase.util.i18n$translate_site_locale.invokeStatic(i18n.clj:73) + at metabase.util.i18n$translate_site_locale.invoke(i18n.clj:70) + at metabase.util.i18n.SiteLocalizedString.toString(i18n.clj:98) + at clojure.core$str.invokeStatic(core.clj:555) + at clojure.core$str.invoke(core.clj:546) + at metabase.core$destroy_BANG_.invokeStatic(core.clj:86) + at metabase.core$destroy_BANG_.invoke(core.clj:83) + at clojure.lang.AFn.run(AFn.java:22) + at java.base/java.lang.Thread.run(Unknown Source) diff --git a/metabase/metabase.db/metabase.db.v1-backup.mv.db b/metabase/metabase.db/metabase.db.v1-backup.mv.db new file mode 100644 index 0000000..fb16c0e Binary files /dev/null and b/metabase/metabase.db/metabase.db.v1-backup.mv.db differ diff --git a/models/metrics/metrics.yml b/models/metrics/metrics.yml index 3822599..8d7d3c1 100644 --- a/models/metrics/metrics.yml +++ b/models/metrics/metrics.yml @@ -39,3 +39,35 @@ metrics: time_grains: [day, week, month, quarter, year] dimensions: [traffic_grouping, traffic_source, traffic_medium, traffic_campaign, device_category, location_country] + + - name: bounces + label: 'Bounces' + model: ref('f_tracker') + calculation_method: sum + expression: bounces + + timestamp: dt + time_grains: [day, week, month, quarter, year] + + dimensions: [traffic_grouping, traffic_source, traffic_medium, traffic_campaign, device_category, location_country] + + - name: sessions + label: 'Sessions' + model: ref('f_tracker') + calculation_method: sum + expression: sessions + + timestamp: dt + time_grains: [day, week, month, quarter, year] + + dimensions: [traffic_grouping, traffic_source, traffic_medium, traffic_campaign, device_category, location_country] + + - name: bounce_rate + label: 'Bounce rate' + calculation_method: derived + expression: "{{metric('bounces')}} / {{metric('sessions')}}" + + timestamp: dt + time_grains: [day, week, month, quarter, year] + + dimensions: [traffic_grouping, traffic_source, traffic_medium, traffic_campaign, device_category, location_country] diff --git a/schema/f_tracker.yml b/schema/f_tracker.yml index fda17d1..f342a48 100644 --- a/schema/f_tracker.yml +++ b/schema/f_tracker.yml @@ -11,6 +11,15 @@ cubes: - name: CPC sql: '{CUBE.costs} / nullif(coalesce({CUBE.clicks}, 1), 0)' type: number + - name: bounces + sql: bounces + type: sum + - name: sessions + sql: sessions + type: sum + - name: bounce_rate + sql: '{CUBE.bounces}/{CUBE.sessions}' + type: number dimensions: - name: date sql: 'dt'