Hi Guys. I recently started using Metabase and am trying to build a BI solution for the company I work for. The system we use here is built in Delphi, and as we know, its native database is Firebird. I managed to find a community-made driver to integrate this database with Metabase (firebird.metabase-driver_1.6.0-RC1). However, although it is possible to create dashboards and fetch data from the database, schema synchronization is not working. This prevents me from fully utilizing the potential of Metabase, such as field filters. Has anyone synced successfully or know if it's possible to do this with Firebird? Below is the diagnosis and log of the synchronization attempt I made.
{
"browser-info": {
"language": "pt-BR",
"platform": "Win32",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
"vendor": "Google Inc."
},
"system-info": {
"file.encoding": "UTF-8",
"java.runtime.name": "OpenJDK Runtime Environment",
"java.runtime.version": "11.0.22+7-post-Ubuntu-0ubuntu222.04.1",
"java.vendor": "Ubuntu",
"java.vendor.url": "https://ubuntu.com/",
"java.version": "11.0.22",
"java.vm.name": "OpenJDK 64-Bit Server VM",
"java.vm.version": "11.0.22+7-post-Ubuntu-0ubuntu222.04.1",
"os.name": "Linux",
"os.version": "5.15.0-101-generic",
"user.language": "pt",
"user.timezone": "Etc/UTC"
},
"metabase-info": {
"databases": [
"h2",
"mysql",
"firebird"
],
"hosting-env": "unknown",
"application-database": "h2",
"application-database-details": {
"database": {
"name": "H2",
"version": "2.1.214 (2022-06-13)"
},
"jdbc-driver": {
"name": "H2 JDBC Driver",
"version": "2.1.214 (2022-06-13)"
}
},
"run-mode": "prod",
"version": {
"date": "2024-03-04",
"tag": "v0.48.8",
"hash": "a900c85"
},
"settings": {
"report-timezone": "America/Sao_Paulo"
}
}
}
===============================LOG====================================
[0807ac61-e542-4ced-8fa4-ce2defc4e2e3] 2024-03-28T07:42:49-03:00 ERROR metabase.driver.sql.query-processor Formulário Inválido HoneySQL: illegal syntax in select expression
{:select [:*],
:from [[:metabase.util.honey-sql-2/identifier :table ["AGAGENDA"]]],
:where [:not= 1 1],
:modifiers ["FIRST 0"]}
clojure.lang.ExceptionInfo: illegal syntax in select expression {:symbol :metabase.util.honey-sql-2/identifier, :alias :table, :unexpected (["AGAGENDA"])}
at honey.sql$format_item_selection.invokeStatic(sql.cljc:510)
at honey.sql$format_item_selection.invoke(sql.cljc:503)
at honey.sql$format_selectable_dsl.invokeStatic(sql.cljc:543)
at honey.sql$format_selectable_dsl.doInvoke(sql.cljc:538)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at honey.sql$format_selects_common$fn__21559.invoke(sql.cljc:646)
at clojure.core$map$fn__5935.invoke(core.clj:2770)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:51)
at clojure.lang.RT.seq(RT.java:535)
at clojure.core$seq__5467.invokeStatic(core.clj:139)
at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:24)
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 honey.sql$reduce_sql.invokeStatic(sql.cljc:557)
at honey.sql$reduce_sql.invoke(sql.cljc:556)
at honey.sql$format_selects_common.invokeStatic(sql.cljc:646)
at honey.sql$format_selects_common.invoke(sql.cljc:644)
at honey.sql$format_selects.invokeStatic(sql.cljc:656)
at honey.sql$format_selects.invoke(sql.cljc:655)
at clojure.lang.Var.invoke(Var.java:388)
at honey.sql$format_dsl$fn__22018.invoke(sql.cljc:1445)
at clojure.lang.PersistentVector.reduce(PersistentVector.java:343)
at clojure.core$reduce.invokeStatic(core.clj:6885)
at clojure.core$reduce.invoke(core.clj:6868)
at honey.sql$format_dsl.invokeStatic(sql.cljc:1439)
at honey.sql$format_dsl.doInvoke(sql.cljc:1429)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at clojure.lang.Var.invoke(Var.java:388)
at honey.sql$format.invokeStatic(sql.cljc:1951)
at honey.sql$format.invoke(sql.cljc:1898)
at metabase.driver.sql.query_processor$format_honeysql_2.invokeStatic(query_processor.clj:1407)
at metabase.driver.sql.query_processor$format_honeysql_2.invoke(query_processor.clj:1397)
at metabase.driver.sql.query_processor$format_honeysql.invokeStatic(query_processor.clj:1427)
at metabase.driver.sql.query_processor$format_honeysql.invoke(query_processor.clj:1416)
at metabase.driver.sql.query_processor$format_honeysql.invokeStatic(query_processor.clj:1420)
at metabase.driver.sql.query_processor$format_honeysql.invoke(query_processor.clj:1416)
at metabase.driver.firebird$simple_select_probe_query.invokeStatic(firebird.clj:101)
at metabase.driver.firebird$simple_select_probe_query.invoke(firebird.clj:94)
at metabase.driver.firebird$fn__106773.invokeStatic(firebird.clj:116)
at metabase.driver.firebird$fn__106773.invoke(firebird.clj:112)
at clojure.lang.MultiFn.invoke(MultiFn.java:244)
at metabase.driver.sql_jdbc.sync.describe_database$have_select_privilege_fn$fn__79784.invoke(describe_database.clj:152)
at metabase.driver.sql_jdbc.sync.describe_database$post_filtered_active_tables$fn__79807.invoke(describe_database.clj:193)
at clojure.core$filter$fn__5958$fn__5959.invoke(core.clj:2822)
at clojure.lang.PersistentVector.reduce(PersistentVector.java:343)
at clojure.core$transduce.invokeStatic(core.clj:6946)
at clojure.core.Eduction.reduce(core.clj:7750)
at clojure.core$reduce.invokeStatic(core.clj:6885)
at clojure.core$into.invokeStatic(core.clj:6958)
at clojure.core$into.invoke(core.clj:6950)
at metabase.driver.sql_jdbc.sync.describe_database$describe_database$fn__79818$default_active_tbl_fn__79819.invoke(describe_database.clj:221)
at metabase.driver.sql_jdbc.sync.describe_database$describe_database$fn__79818.invoke(describe_database.clj:233)
at metabase.driver.sql_jdbc.execute$fn__77656$fn__77657.invoke(execute.clj:388)
at metabase.driver.sql_jdbc.execute$do_with_resolved_connection.invokeStatic(execute.clj:334)
at metabase.driver.sql_jdbc.execute$do_with_resolved_connection.invoke(execute.clj:317)
at metabase.driver.sql_jdbc.execute$fn__77656.invokeStatic(execute.clj:382)
at metabase.driver.sql_jdbc.execute$fn__77656.invoke(execute.clj:380)
at clojure.lang.MultiFn.invoke(MultiFn.java:244)
at metabase.driver.sql_jdbc.sync.describe_database$describe_database.invokeStatic(describe_database.clj:213)
at metabase.driver.sql_jdbc.sync.describe_database$describe_database.invoke(describe_database.clj:208)
at metabase.driver.sql_jdbc$fn__105643.invokeStatic(sql_jdbc.clj:94)
at metabase.driver.sql_jdbc$fn__105643.invoke(sql_jdbc.clj:92)
at clojure.lang.MultiFn.invoke(MultiFn.java:234)
at metabase.sync.fetch_metadata$db_metadata.invokeStatic(fetch_metadata.clj:15)
at metabase.sync.fetch_metadata$db_metadata.invoke(fetch_metadata.clj:12)
at metabase.sync.sync_metadata$sync_db_metadata_BANG_.invokeStatic(sync_metadata.clj:61)
at metabase.sync.sync_metadata$sync_db_metadata_BANG_.invoke(sync_metadata.clj:58)
at metabase.api.database$fn__97975$fn__97980.invoke(database.clj:998)
at clojure.core$binding_conveyor_fn$fn__5823.invoke(core.clj:2047)
at clojure.lang.AFn.call(AFn.java:18)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
[0807ac61-e542-4ced-8fa4-ce2defc4e2e3] 2024-03-28T07:42:49-03:00 WARN org.firebirdsql.jca.FBManagedConnection WARNING: No connection character set specified (property lc_ctype, encoding, charSet or localEncoding), defaulting to character set NONE
[0807ac61-e542-4ced-8fa4-ce2defc4e2e3] 2024-03-28T07:42:56-03:00 DEBUG metabase.server.middleware.log GET /api/util/bug_report_details 200 4,0 ms (1 chamadas ao banco de dados) Conexões com o banco de dados: 1 / 13 Threads do Jetty: 5 / 50 (8 ocioso, 0 na fila) (109 total de threads ativas) Consultas ativas: 0 (0 na fila)
Metabase Version 0.48.8