crate: crate 2.3.3 does not work with metabase

CrateDB version: 2.3.3

JVM version: docker

OS version / environment description: docker

Problem description:

Metabase failed to sync table of crate 2.3.3.

02-27 23:22:29 ERROR sync.util :: Error syncing fields for Table 150 'sys.summits': ERROR: SQLParseException: Cannot cast constraint_name to type [undefined_table, undefined_set, undefined_array]
("driver.crate$add_table_pks.invokeStatic(crate.clj:79)"
 "driver.crate$add_table_pks.invoke(crate.clj:77)"
 "driver.crate$describe_table.invokeStatic(crate.clj:94)"
 "driver.crate$describe_table.invoke(crate.clj:89)"
 "driver$fn__25511$G__25367__25520.invoke(driver.clj:51)"
 "sync.fetch_metadata$fn__35668$table_metadata__35673$fn__35674.invoke(fetch_metadata.clj:18)"
 "sync.fetch_metadata$fn__35668$table_metadata__35673.invoke(fetch_metadata.clj:15)"
 "sync.sync_metadata.fields$fn__36229$db_metadata__36234$fn__36235.invoke(fields.clj:294)"
 "sync.sync_metadata.fields$fn__36229$db_metadata__36234.invoke(fields.clj:290)"
 "sync.sync_metadata.fields$fn__36257$sync_fields_for_table_BANG___36266$fn__36269$fn__36270.invoke(fields.clj:307)"
 "sync.util$do_with_error_handling.invokeStatic(util.clj:124)"
 "sync.util$do_with_error_handling.invoke(util.clj:119)"
 "sync.sync_metadata.fields$fn__36257$sync_fields_for_table_BANG___36266$fn__36269.invoke(fields.clj:306)"
 "sync.sync_metadata.fields$fn__36257$sync_fields_for_table_BANG___36266.invoke(fields.clj:301)"
 "sync.sync_metadata.fields$fn__36295$sync_fields_BANG___36300$fn__36301.invoke(fields.clj:318)"
 "sync.sync_metadata.fields$fn__36295$sync_fields_BANG___36300.invoke(fields.clj:314)"
 "sync.sync_metadata$fn__36864$sync_db_metadata_BANG___36869$fn__36870$fn__36871.invoke(sync_metadata.clj:28)"
 "sync.util$do_with_error_handling.invokeStatic(util.clj:124)"
 "sync.util$do_with_error_handling.invoke(util.clj:119)"
 "sync.util$do_with_error_handling.invokeStatic(util.clj:122)"
 "sync.util$do_with_error_handling.invoke(util.clj:119)"
 "driver$fn__25602.invokeStatic(driver.clj:226)"
 "driver$fn__25602.invoke(driver.clj:226)"
 "driver$fn__25526$G__25357__25535.invoke(driver.clj:51)"
 "sync.util$sync_in_context$fn__34128.invoke(util.clj:115)"
 "sync.util$with_db_logging_disabled$fn__34125.invoke(util.clj:106)"
 "sync.util$with_start_and_finish_logging$fn__34120.invoke(util.clj:92)"
 "sync.util$with_sync_events$fn__34117.invoke(util.clj:75)"
 "sync.util$with_duplicate_ops_prevented$fn__34108.invoke(util.clj:54)"
 "sync.util$do_sync_operation.invokeStatic(util.clj:142)"
 "sync.util$do_sync_operation.invoke(util.clj:139)"
 "sync.sync_metadata$fn__36864$sync_db_metadata_BANG___36869$fn__36870.invoke(sync_metadata.clj:23)"
 "sync.sync_metadata$fn__36864$sync_db_metadata_BANG___36869.invoke(sync_metadata.clj:20)"
 "api.database$fn__37519$fn__37520$fn__37521.invoke(database.clj:505)")

02-27 23:22:29 ERROR sync.util :: Error syncing fields for Table 151 'sys.snapshots': ERROR: SQLParseException: Cannot cast constraint_name to type [undefined_table, undefined_set, undefined_array]
("driver.crate$add_table_pks.invokeStatic(crate.clj:79)"
 "driver.crate$add_table_pks.invoke(crate.clj:77)"
 "driver.crate$describe_table.invokeStatic(crate.clj:94)"
 "driver.crate$describe_table.invoke(crate.clj:89)"
 "driver$fn__25511$G__25367__25520.invoke(driver.clj:51)"
 "sync.fetch_metadata$fn__35668$table_metadata__35673$fn__35674.invoke(fetch_metadata.clj:18)"
 "sync.fetch_metadata$fn__35668$table_metadata__35673.invoke(fetch_metadata.clj:15)"
 "sync.sync_metadata.fields$fn__36229$db_metadata__36234$fn__36235.invoke(fields.clj:294)"
 "sync.sync_metadata.fields$fn__36229$db_metadata__36234.invoke(fields.clj:290)"
 "sync.sync_metadata.fields$fn__36257$sync_fields_for_table_BANG___36266$fn__36269$fn__36270.invoke(fields.clj:307)"
 "sync.util$do_with_error_handling.invokeStatic(util.clj:124)"
 "sync.util$do_with_error_handling.invoke(util.clj:119)"
 "sync.sync_metadata.fields$fn__36257$sync_fields_for_table_BANG___36266$fn__36269.invoke(fields.clj:306)"
 "sync.sync_metadata.fields$fn__36257$sync_fields_for_table_BANG___36266.invoke(fields.clj:301)"
 "sync.sync_metadata.fields$fn__36295$sync_fields_BANG___36300$fn__36301.invoke(fields.clj:318)"
 "sync.sync_metadata.fields$fn__36295$sync_fields_BANG___36300.invoke(fields.clj:314)"
 "sync.sync_metadata$fn__36864$sync_db_metadata_BANG___36869$fn__36870$fn__36871.invoke(sync_metadata.clj:28)"
 "sync.util$do_with_error_handling.invokeStatic(util.clj:124)"
 "sync.util$do_with_error_handling.invoke(util.clj:119)"
 "sync.util$do_with_error_handling.invokeStatic(util.clj:122)"
 "sync.util$do_with_error_handling.invoke(util.clj:119)"
 "driver$fn__25602.invokeStatic(driver.clj:226)"
 "driver$fn__25602.invoke(driver.clj:226)"
 "driver$fn__25526$G__25357__25535.invoke(driver.clj:51)"
 "sync.util$sync_in_context$fn__34128.invoke(util.clj:115)"
 "sync.util$with_db_logging_disabled$fn__34125.invoke(util.clj:106)"
 "sync.util$with_start_and_finish_logging$fn__34120.invoke(util.clj:92)"
 "sync.util$with_sync_events$fn__34117.invoke(util.clj:75)"
 "sync.util$with_duplicate_ops_prevented$fn__34108.invoke(util.clj:54)"
 "sync.util$do_sync_operation.invokeStatic(util.clj:142)"
 "sync.util$do_sync_operation.invoke(util.clj:139)"
 "sync.sync_metadata$fn__36864$sync_db_metadata_BANG___36869$fn__36870.invoke(sync_metadata.clj:23)"
 "sync.sync_metadata$fn__36864$sync_db_metadata_BANG___36869.invoke(sync_metadata.clj:20)"
 "api.database$fn__37519$fn__37520$fn__37521.invoke(database.clj:505)")

02-27 23:22:29 INFO sync.util :: FINISHED: Sync metadata for crate Database 4 'test-crate-2.3.3' (1 s)

Steps to reproduce:

It’s easy to reproduce, even without a user-defined table in crate, system table is enough to reproduce.

$ docker pull crate
$ docker pull metabase/metabase
$ docker run -d -p 4200:4200 -p 4300:4300 -p 5432:5432 crate --name crate -Cnetwork.host=_site_
$ docker run -d -p 3000:3000 -v ~/.metabase:/metabase-data -e "MB_DB_FILE=/metabase-data/metabase.db" --name metabase metabase/metabase
$ docker logs -f metabase

Add a crate database in metabase admin panel, and every time click Sync database schema now button from the admin panel, you can see the error log from console.

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 18 (3 by maintainers)

Most upvoted comments

hi @on99 unfortunately we only have the capacity to support a very few third party applications properly. Furthermore we do not have a good Clojure developer at hand at the moment, who could take over the Metabase integration. However, we are looking for someone already. If there are any good Clojure programmers reading this, please get in contact with us!