Откат
Любой завершенный локальный пакет, включая загруженный импортированный пакет, можно откатить. При осуществлении отката, записи, собранные в локальном пакете, возвращаются в состояние до сборки локального пакета, то есть восстанавливается их предыдущая версия. При откате импортированного пакета восстанавливается состояние записей до импорта пакета. При этом все удаленные записи восстанавливаются, а созданные удаляются.
После завершения отката импортированные версии остаются в системе как неактуальные записи VCS. Их можно восстановить вручную.
Пример
- В конфигурационном пакете содержится запись с версией X.
- До импорта, в целевом экземпляре находилась запись с версией Y.
- После импорта локального пакета версия записи сменилась на X.
- При откате локального пакета восстанавливается запись с версией Y.
Откат локального пакета
Чтобы откатить локальный пакет, выполните следующие шаги:
- Перейдите в Конфигурация → Локальные пакеты.
- Откройте локальный пакет, который необходимо откатить.
- Нажмите Подготовка к откату, чтобы проверить ответ системы на восстановление записей.
- В области Связанные списки откройте вкладку Журнал просмотра VCS.
- Отфильтруйте записи, исключив все со статусом Разрешено при помощи конструктора условий. Решите все коллизии, если они есть.
- Нажмите Откат, чтобы восстановить предыдущую версию записей.
В результате произойдут следующие изменения:
Результат импорта | Результат отката |
---|---|
Новая таблица | Удаление таблицы и ее записей. |
Новое поле | Удаление поля из базы данных, включая всю информацию о нем. |
Удаленное поле | Восстановление поля в базе данных. Исходные данные при этом будут утеряны. |
Новая запись | Запись удалена. |
Удаленная запись | Запись восстановлена, включая исходные данные. |
Обновленная запись | Восстановлена предыдущая версия записи. |
Решение коллизий
Общая схема работы с коллизиями во время отката следующая:
- В конфигурационном пакете, для которого будет совершен откат, нажмите Подготовка к откату.
- Прокрутите страницу вниз до области Связанные списки и откройте вкладку Журнал просмотра VCS.
- Отфильтруйте записи, исключив все со статусом Разрешено при помощи конструктора условий.
- Откройте первую запись. В поле Сообщение указана причина ошибки.
- Выполните необходимые действия для решения коллизии.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
- Вернитесь в конфигурационный пакет и нажмите Подготовка к откату.
- Убедитесь, что статус записи в Журнале просмотра VCS изменился на Разрешено.
- Повторите шаги 3–8 до тех пор, пока все записи в Журнале просмотра VCS не перейдут в статус Разрешено.
- Нажмите Откат.
Возможные коллизии
Коллизия 1
При откате локального пакета статус записи меняется на Коллизия. В поле Сообщение указано следующее:
The current version for this target entry is in a different local package. https://{your-instance.ru}/record/sys_vcs_record/123455521418546721
Решение коллизии:
Перенесите текущую запись в локальный пакет, для которого будет совершен откат, и нажмите Подготовка к откату.
Коллизия 2
При откате локального пакета, статус одной из записей меняется на Коллизия. В поле Сообщение указано следующее:
Current record does not exist!
Решение коллизии:
Перенесите текущую запись в локальный пакет, для которого будет совершен откат, и нажмите Подготовка к откату.
Коллизия 2
При откате локального пакета, статус одной из записей меняется на Коллизия. В поле Сообщение указано следующее:
Current record does not exist!
Решение коллизии:
Продолжите откат. Данная запись будет пропущена.
Коллизия 3
При откате локального пакета, статус одной из записей меняется на Коллизия. В поле Сообщение указано следующее:
Previous version for current is not found
Решение коллизии:
Продолжите откат. Данная запись будет пропущена.
Коллизия 4
В локальном пакете содержится запись таблицы в статусе Создано. Во время отката эта таблица должна быть удалена. Однако записи, содержащиеся в таблице, не позволяют ее удалить. После подготовки к откату статус этой записи меняется на Пропущено. В поле Сообщение указано следующее:
Table is not empty
Решение коллизии:
-
Установите статус Разрешено. В этом случае таблица и ее записи будут удалены.
ИЛИ
-
Не меняйте статус Пропущено. Таблица останется.
Больше примеров решения различных коллизий в статье Правила решений коллизий.