This page allows you to set properties for a new custom database that you want to work with. Based on these properties, Studio will generate code to support the database both at design and run time.
After you click OK, Studio will generate Java classes in com.haulmont.cuba.core.sys.persistence
and Groovy classes in com.haulmont.studio.db.{db_id}
packages of your project. The sample auto-generated implementation is suitable for Microsoft SQLServer database. You should change it appropriately.
First, fix the com.haulmont.studio.db.{db_id}.{db_id}DbProperties
class. When it is ready to fit your database, you will be able to switch your project to this database in Studio. Reopen the project to see your database in the Database type drop-down list.
In order to connect to your database at runtime, fix {db_id}DbmsFeatures
and {db_id}DbTypeConverter
classes of the com.haulmont.cuba.core.sys.persistence
package. The {db_id}SequenceSupport
class is used only for generating integer identifiers and unique numbers.
Finally, fix the com.haulmont.studio.db.{db_id}.{db_id}DdlGenerator
class for correct generation of init and update database scripts by Studio.
You can debug {db_id}DbProperties
and {db_id}DdlGenerator
classes if you start Studio with the following parameters:
-Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n
and attach to the port 5005 with a remote debugger.
If you use the custom database as a main data store, when you generate database scripts, Studio will create init scripts for all application components, including CUBA. These scripts won’t include some required initialization data, so you have to add the following to the Init data script of your project (30.create-db.sql):
insert into SEC_GROUP (ID, CREATE_TS, VERSION, NAME, PARENT_ID) values ('0fa2b1a5-1d68-4d69-9fbd-dff348347f93', current_timestamp, 0, 'Company', null)^ insert into SEC_USER (ID, CREATE_TS, VERSION, LOGIN, LOGIN_LC, PASSWORD, NAME, GROUP_ID, ACTIVE) values ('60885987-1b61-4247-94c7-dff348347f93', current_timestamp, 0, 'admin', 'admin', 'cc2229d1b8a052423d9e1c9ef0113b850086586a', 'Administrator', '0fa2b1a5-1d68-4d69-9fbd-dff348347f93', 1)^ insert into SEC_USER (ID, CREATE_TS, VERSION, LOGIN, LOGIN_LC, PASSWORD, NAME, GROUP_ID, ACTIVE) values ('a405db59-e674-4f63-8afe-269dda788fe8', current_timestamp, 0, 'anonymous', 'anonymous', null, 'Anonymous', '0fa2b1a5-1d68-4d69-9fbd-dff348347f93', 1)^