<< Click to Display Table of Contents >> Администрирование (Windows) > Обновление системы > Обновление среды разработки > Переход на большие ИД объектов Таблицы базы данных |
При обновлении Directum RX в базе данных для системных таблиц и таблиц сущностей, в том числе заказных и модифицированных, колонки Id и колонки, содержащие свойства-ссылки, автоматически преобразуются к типу bigint.
Для остальных таблиц, которые созданы в прикладном коде и содержат ИД сущностей, необходимо написать скрипты конвертации для перехода с int на bigint. При этом:
•если таблица создана в Microsoft SQL Server, то сначала в скрипте нужно удалить индексы и ограничения (constraints), изменить тип колонок на bigint, а затем добавить новые индексы и ограничения;
•если таблица создана в СУБД на базе PostgreSQL, то в скрипте достаточно сразу изменить тип полей на bigint. Индексы и ограничения меняются автоматически.
ВАЖНО. Для таблиц, которые удаляются перед созданием, например таблицы отчетов, скрипт конвертации писать не требуется.
Пример. Скрипт для обновления таблицы БД
В модуле Docflow используется таблица Sungero_DocRegister_CurrentNumbers, которая хранит очередные номера журналов регистрации в разных разрезах: для ведущего документа, нашей организации или подразделения. В стандартной поставке эта таблица конвертируется с помощью скрипта. Его можно использовать в качестве примера для написания своих скриптов.
Если таблица создана в СУБД Microsoft SQL Server, то для ее конвертации в скрипте нужно выполнить три шага:
1.Удалить из таблицы старые индексы и ограничения (constraints). Для этого сначала скрипт находит индексы полей, содержащих ИД сущностей, удаляет их, а затем определяет соответствующие индексам ограничения и тоже удаляет их.
2.Для колонок, по которым удалены индексы, изменить тип int на bigint.
3.Добавить новые индексы и ограничения. Если индексы и ограничения всегда добавляются в коде инициализации модулей, то этот пункт можно не выполнять в скрипте.
Если таблица создана в СУБД на базе PostgreSQL, то для ее конвертации в скрипте нужно выполнить один шаг – изменить тип int на bigint для колонок, содержащих ИД сущностей:
Примечание. Для СУБД на базе PostgreSQL в скрипте рекомендуется группировать колонки по таблицам, таким образом запрос выполняется быстрее.
© Компания Directum, 2024 |