Генерация скриптов базы данных

Общие сведения

В данном разделе описан порядок формирования сценариев базы данных для сущностей ТЕЗИС в THESIS Studio. Сведения предназначены для администратора или разработчика, выполняющего настройку и сопровождение проекта.

Для созданных сущностей ТЕЗИС, помимо стандартных сценариев DDL и DCL, формируются сценарии DML. Они используются для добавления нумераторов, ограничений доступа, типов карточек, видов документов и других служебных данных.

Сценарии формируются не при создании сущности, а при выполнении действия Generate Database Scripts. Действие доступно в меню THESIS и в контекстном меню выбранного источника данных Data Store.

При создании карточек, документов и справочников сведения о них регистрируются в локальном кэше проекта. Кэш хранится в файле:

.idea/thesis-entities-info.xml

В этот же файл записываются префикс нумератора и поля вида документа. Эти сведения не хранятся в других местах и используются при формировании сценариев базы данных, включая вставку нумератора и вида документа.

Все начальные DML-сценарии помещаются в файл 30.create-db.sql и выделяются комментариями вида:

-- begin ${operation}
...
-- end ${operation}

DML-сценарии обновления помещаются в отдельные файлы с описательными именами. Логика формирования подробно описывается отдельно для каждого сценария.

Важно!
Не рекомендуется изменять текст автоматически сформированных комментариев и имена файлов. Такие изменения могут нарушить логику обновления и удаления сценариев и привести к ошибкам, в том числе к невозможности запуска системы.

Генерация сценариев для разных сущностей

Карточка

Для карточки формируются следующие сценарии:

  • вставка нумератора;

  • вставка ограничений для группы Ограниченный доступ;

  • вставка типа карточки.

Для ограничения группы Ограниченный доступ используются следующие параметры:

Параметр Значение
Выражение join left outer join {E}.aclList acl
Выражение where acl.user.id =:session$userId or acl.global = true
UUID группы 8e6306e2-9e10-414a-b437-24c91ffef804

При вставке типа карточки в fields.xml включаются все атрибуты, кроме коллекций.

Шаблон карточки

Для шаблона карточки формируется сценарий вставки ограничений для группы Ограниченный доступ.

Для ограничения используются следующие параметры:

Параметр Значение
Выражение join left outer join {E}.aclList acl
Выражение where acl.user.id =:session$userId or acl.global = true
UUID группы 8e6306e2-9e10-414a-b437-24c91ffef804

Документ

Для документа формируются следующие сценарии:

  • вставка нумератора;

  • вставка типа карточки;

  • добавление типа карточки в стандартные процессы: Согласование, Резолюция, Ознакомление, Регистрация;

  • вставка вида документа;

  • вставка разрешений.

Справочник

Для справочника формируется сценарий вставки разрешений.

Расширенная сущность

Для расширенной сущности формируется сценарий обновления дискриминатора.