Sync Firebird schema

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

hi, it seems that the driver is not compatible with the newer versions of Metabase, have you thought about using anything to get info out of Firebird into a postgreSQL and connect Metabase to that?

Hi Luiggi,

Thank you for your response. Yes, we have a project to extract data from this database and transfer it to PostgreSQL. However, since it's a very large database, for now, I'd like to use Firebird until this migration is ready (which I don't know when it will be :disappointed:).