Установка обновлений. Сравнение пакетов, Сохранение схем
Добрый день!
Пытаюсь установить обновления с разработческой среды на тестовую через установку и удаление пакетов.
Сам пакет на целевой стенд устанавливается корректно.
Но в итоге вижу, что часть обновлений клиентских схем на целевом стенде не появляется.
Анализируя логи, обнаружила записи типа
.....
2021-12-30 00:47:46,632 Сравнение пакетов
2021-12-30 00:47:46,901 Сохранена схема "SmaNeedSection" в пакете "SmaMain"
..... (тут идут записи про установку пакетов)
2021-12-30 00:47:49,241 Генерация исходного кода схемы "SmaNeedSection" из пакета "SmaMain"
В устанавливаемом пакете как раз содержались обновления схемы "SmaNeedSection" и именно их нужно было установить на стенд.
Вопрос:
- как происходит сравнение пакетов, что именно при этом сравнивается?
- на основании чего Creatio определяет, что какие-то схемы нужно отдельно сохранить, а потом их восстановить?
- Что сделать, чтобы избежать таких ошибок в будущем? Если ли какая-то системная настройка, отвечающая за такое поведение установщика пакетов?
Нравится
Если распаковать пакет через clio или выгрузить в файловую систему, то у каждой схемы есть файл descriptor.json, в нем есть свойство "ModifiedOnUtc", вот по этой дате, если она отличается, и определяется нужно ли обновить схему на целевой среде или нет. Так же на целевой среде у схем (таблицы в бд) "SysSchema", "SysPackageSchemaData", "SysPackageReferenceAssembly ", "SysPackageSqlScript", должно быть установлено IsChanged =0 и IsLocked =0, где SysPackageId = id вашего пакета (таблица SysPackage)