Как это работает / 02 из 05
Сначала увидеть, что изменится
Не нужно переносить доработку вслепую. Holkas сравнивает выбранные объекты в двух местах и превращает отличия в понятный список действий — план.
Попробуйте на примере
Одно сравнение — разные действия
Отчёт есть
Новая версия доработки
Отчёта нет
Пока нечего сравнивать
Создать
Create · добавить отчёт
Новое нужно создать
Отчёт выбран для переноса, но в рабочей базе его ещё нет.
Новый код
Функция после доработки
Прежний код
Та же функция до правки
Обновить
Update · изменить функцию
Существующее нужно обновить
Функция есть в обеих базах одной СУБД, но её код отличается.
Отчёт есть
Актуальная версия
Такой же отчёт
Содержимое совпадает
Без изменений
Команды для объекта нет
Одинаковое трогать не нужно
Выбранный объект уже находится в нужном состоянии.
Без параметра
Новое устройство метода
С параметром
Часть больше не нужна
Удалить часть
Delete · убрать параметр
Лишняя часть может быть удалена
В выбранном классе у метода больше нет прежнего параметра. Правила этого типа допускают удаление такой части.
План отвечает на вопрос «что нужно изменить в приёмнике?». Если отличий нет, менять нечего.
Сравниваем выбранное
Holkas читает каждый выбранный объект в источнике и приёмнике, сопоставляет его части и поля. В план попадают отличия: что создать, что изменить и какие части удалить, если правила типа это разрешают.
Если содержимое совпадает, команд для него не будет. Пустой план — нормальный результат: выбранные объекты уже совпадают.
Исключение — пользовательский скрипт: он не сравнивается с состоянием приёмника и выполняется при каждом применении.
Четыре обозначения в плане
| Команда | Простыми словами |
|---|---|
| Create | Создать то, чего ещё нет. |
| Update | Изменить существующий объект или его часть. |
| Delete | Удалить лишнюю часть выбранного объекта, если это разрешено для её типа. |
| SetOrder | Привести элементы к нужному порядку — например, значения домена. |
Выбор объектов означает «эти объекты должны быть в приёмнике». Он не означает «удалить всё остальное». Посторонний отчёт в рабочей базе не исчезнет из-за того, что его нет в вашем наборе. Конкретные правила удаления — в справочнике.
План можно разобрать до применения
Откройте команду, чтобы увидеть старое и новое значение или отличие в коде. Ненужные команды можно исключить, а перенос выполнить целиком или частями.
При выборе учитываются зависимости между уже построенными командами: нужные предшественники включаются вместе с выбранной командой; при исключении предшественника исключаются зависящие от него команды. Это не добавляет новые объекты из источника. Подробнее — о порядке выполнения.
Если база изменилась, пока вы смотрели план
Перед применением Holkas заново определяет необходимые команды. Дальнейшее поведение зависит от выбранного состава запуска:
- Весь план без исключений. Новые необходимые команды могут выполниться с пометкой «вне плана» в журнале.
- Только выбранное или план с исключениями. При появлении команд сверх сохранённого плана применение останавливается до первой записи и требует нового плана.
Это важная граница: просмотр плана не замораживает состояние рабочей базы. Подробности о сбоях и частичном применении — на странице «Границы и контроль».