В разделе описана настройка дополнительных источников данных в THESIS Studio, включая возможность использования базы данных основного источника для хранения данных дополнительных источников (чек-бокс Use main data store DB), доступную начиная с версии ТЕЗИС 5.2.0.
Диалог редактирования дополнительных источников данных
Начиная с версии ТЕЗИС 5.2.0 поддерживается использование базы данных основного источника для хранения данных одного или нескольких дополнительных источников. Для настройки данного режима в диалог редактирования дополнительного источника данных добавлен чек-бокс Use main data store DB.
Особенности работы чек-бокса Use main data store DB
Чек-бокс Use main data store DB имеет следующие особенности:
-
доступен для проектов расширения ТЕЗИС версии 5.2.0 и выше;
-
не отображается для проектов расширения более ранних версий и проектов CUBA;
-
отсутствует на форме редактирования основного источника данных;
-
при создании дополнительного источника данных отмечен по умолчанию;
-
при отмеченном чек-боксе остальные параметры источника данных недоступны для редактирования.
Если чек-бокс отмечен, при подтверждении настроек выполняются следующие действия:
-
в свойство
cuba.additionalStoresдобавляется имя нового источника данных; -
в модуле
globalсоздается файл${namespace}-${storename}-persistence.xml; -
в файлы свойств всех модулей добавляется свойство
cuba.persistenceConfig_pdsore=${namespace}-pdstore-persistence.xml.
Если чек-бокс не отмечен, применяется стандартная логика настройки дополнительного источника данных. Помимо действий, выполняемых при использовании базы данных основного источника, вносятся следующие изменения:
-
в модуль
coreдобавляются свойства:cuba.dataSourceProvider_${storeName};cuba.dataSourceJndiName_${storeName};cuba.dbmsType_${storeName};cuba.dbmsVersion_${storeName}.
-
добавляются параметры подключения в соответствии с выбранным поставщиком данных: для JNDI настраиваются файл
context.xmlи задача GradlecreateDb_${storeName}, для Application параметры подключения добавляются в файлы свойств модуляcore; -
в файл
${namespace}-spring.xmlмодуляcoreдобавляются компоненты: -
cubaDataSource_${storeName}; -
entityManagerFactory_${storeName}; -
transactionManager_${storeName}.
Для компонента cubaDataSource_${storeName} значение атрибута class определяется версией проекта: для ТЕЗИС 5.2.0 и выше используется com.haulmont.thesis.core.sys.ThesisCubaDataSourceFactoryBean, для более ранних версий ТЕЗИС и проектов CUBA используется com.haulmont.cuba.core.sys.CubaDataSourceFactoryBean;
-
в файл
build.gradleдобавляются задачи:createDB_${storeName};updateDb_${storeName}.
Если задачи createAllDb и updateAllDb уже существуют, задачи createDB_${storeName} и updateDb_${storeName} добавляются в их зависимости.
При переключении существующего дополнительного источника данных на использование базы данных основного источника удаляются элементы конфигурации, относящиеся к отдельному подключению этого источника.
Имя дополнительного источника данных
Для имени дополнительного источника данных действует ограничение: имя не должно содержать заглавных букв. Проверка выполняется при создании нового источника данных, а также при изменении имени существующего источника.
Важно!
Использование заглавных букв в имени дополнительного источника данных может привести к ошибкам при выполнении сценариев создания и обновления базы данных.
Для источников pdstore, statstore, vectorstore и chatbotstore поле имени недоступно для редактирования.
