Настройка параметров дополнительного источника данных

В разделе описана настройка дополнительных источников данных в 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 и задача Gradle createDb_${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 поле имени недоступно для редактирования.