Integrating with Custom Database (Firebird)

CUBA documentation has Integrating with Custom Database instruction and some helper.
I added additional Firebird data store to my jmix project and now all CRUD operations works well.
But on every project startup I get message:
DBs are Missing
The following databases do not exist:

‘Manage Data Store’ fails with ‘Unsupported database type’.

‘Generate Data Model…’ throw an ‘IDE error occured’ error with stacktrace:

com.haulmont.jmixstudio.backend.ed.ddl.UnsupportedDataBaseException: Unsupported database: Unknown
	at com.haulmont.jmixstudio.backend.ed.ddl.DdlGeneratorFactory.getDdlGenerator(
	at com.haulmont.jmixstudio.backend.dbfirst.DbMappingManager.<init>(
	at com.haulmont.jmixstudio.intellij.ui.modelgeneration.GenerateModelProcess.<init>(GenerateModelProcess.kt:38)
	at com.haulmont.jmixstudio.intellij.action.cubamenu.GenerateModelAction.doActionPerformed(
	at com.haulmont.jmixstudio.intellij.action.CubaProjectAction.actionPerformed(
	at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performActionDumbAwareWithCallbacks$4(

Where can I see com.haulmont.jmixstudio.backend.ed.ddl.DdlGeneratorFactory.getDdlGenerator source code or what must I do to add Firebird to supported database types ?

Hi Serg, Firebird while is not supported, a similar issue already has been discussed before.


I looked in the Jmix roadmap and saw nothing about custom databases support in the next year. Nothing even about easy case like additional databases with disabled schema management.
So my existing CUBA project will forever remains CUBA ?

We are certainly going to work on support for arbitrary databases, but at the moment we are not ready to give you timeframes. Follow the issues:

Custom database support : JST-195

In fact, you can use Firebird as an additional data store even now.

Look at the project, particularly at the io.jmix.dbtests.firebird package. It contains beans that are required by the framework for supporting a DBMS. You can copy them to your project, create an additional datastore, specify connection parameters to your Firebird database and add the property: = firebird where abc is the name of your data store.
If you create Liquibase changelogs for the Firebird additional store, they will be executed by the application on startup. There is such a script in the test project: 010-init-AbcEntity.xml.

Tnx for
My FirebirdDbTypeConverter and FirebirdDbmsFeatures classes are the same, FirebirdSequenceSupport class a little bit different but this does not affect.
I start this forum thread after all you wrote was done, but I cant use ‘Generate Data Model…’ feature :frowning: