Holkas
GitHub · релизы

Задача / по шагам

Перенести доработку КОР Парус 8 между базами

Пошаговый перенос доработки КОР Парус 8 с тестовой базы на рабочую — выбор класса и связанных объектов, проверка плана и результата в Парусе.

  1. 01
    Тестовая база

    Здесь доработка уже готова

  2. 02
    План изменений

    Здесь решаете

  3. 03
    Рабочая база

    Здесь проверяете результат

Учебный пример. Названия баз и объектов условные; схемы ниже не являются скриншотами приложения. Обе базы в примере — PostgreSQL с Парусом.

Что переносим

Вы работаете с КОР — Конструктором отраслевых расширений Парус 8. На тестовой базе к классу «Договоры» добавлен метод согласования, изменена функция проверки и создан новый отчёт. Нужно перенести эту доработку в рабочую базу — без копирования документов и других строк рабочих данных.

В примере обе базы на одной СУБД. При смене Oracle на PostgreSQL или наоборот действуют другие ограничения для объектов базы.

Перед началом

  • 01

    Holkas доступен

    Откройте веб-интерфейс. Если ещё не установили приложение — начните с установки.

  • 02

    Есть доступ к обеим базам

    Нужны подключения к источнику и приёмнику с правами на соответствующие действия. Учётная запись приёмника должна позволять применить выбранные изменения.

  • 03

    Есть способ восстановиться

    Подготовьте резервную копию рабочей базы и согласуйте время переноса. Holkas не откатывает весь перенос автоматически.

Подготовьте два подключения

В разделе «Подключения» добавьте или откройте тестовую и рабочую базы. Дайте им различимые имена, например test-01 и prod-01. Для каждого нажмите «Проверить подключение» и разберите ошибку, если проверка не прошла.

Успешная проверка связи ещё не гарантирует права на все будущие команды. Уточните права учётной записи приёмника до переноса.

Задайте направление переноса

Откройте «Перенести». Выберите тестовую базу источником, рабочую — приёмником. Сверьте не только имена, но и адреса подключений.

Источник — откуда берём готовую доработку. Приёмник — где будут изменения. В этом примере направление только test-01 → prod-01.

Выберите состав доработки

В каталоге источника отметьте класс «Договоры», функцию parus.f_contract_check и отчёт «Реестр договоров». Выбор класса включает его методы, действия и другие дочерние объекты, но не произвольные функции и отчёты, на которые он ссылается.

Три объекта в выборе — не три команды в плане
CLS

Класс «Договоры»

Выбираете класс; его дочерние объекты включаются вместе с ним.

  • Метод «Согласовать»
  • Действия
  • Ограничения
JFP

Функция проверки

parus.f_contract_check — отдельный объект базы. Выбираете отдельно.

REP

Отчёт «Реестр договоров»

Отдельный объект Паруса. Тоже включаете в состав переноса.

Показана часть состава класса. Полный состав — в справочнике.

Выбор класса задаёт весь его состав, а не только новый метод. Точный список изменений вы проверите в плане.

Постройте и разберите план

Нажмите «Запустить план» и дождитесь завершения построения. Откройте детали команд — какие свойства и части объекта меняются. Ненужную команду можно исключить из запуска; проверьте, не нужна ли она оставшимся командам.

Пример того, что может показать план

План переноса 2 Create ·1 Update test-01 → prod-01
1 Метод Create Договоры.Согласовать
2 Функция Update parus.f_contract_check
3 Отчёт Create REP · Реестр договоров

Условный фрагмент, не скриншот. Команд может быть больше; их состав и порядок зависят от состояния приёмника.

Если задача — только сравнить выбранные объекты, остановитесь здесь. Не нажимайте «Применить» и не выбирайте «Применить без плана».

Проверьте условия и примените

Ещё раз сверьте приёмник, выбранные команды, предупреждения и наличие резервной копии. Особое внимание — командам Delete и пользовательским скриптам, если они есть в вашем плане. Когда результат понятен, нажмите «Применить» и подтвердите действие, если приложение запросит подтверждение.

Если после построения плана базу меняли, постройте новый план. При запуске всего плана без исключений могут выполниться новые команды с пометкой «вне плана»; для ограниченного запуска такие изменения останавливают применение до записи. Подробнее — контроль применения.

Проверьте журнал и саму доработку

Дождитесь окончания операции. Просмотрите исходы команд, пропуски и сообщения в «Логе». Затем откройте Парус на рабочей базе и проверьте доработку на согласованном тестовом примере.

Успешное выполнение команд не заменяет проверку поведения в Парусе. Если есть ошибки, сначала разберите их, а затем решайте, нужен ли повторный перенос.

В журнале

Нет необъяснённых ошибок или пропусков. Команды «вне плана», если они есть, просмотрены.

В Парусе

Метод согласования доступен, проверка выполняется, новый отчёт открывается и даёт ожидаемый результат.

При повторном сравнении

Для ожидаемо выровненных объектов не осталось необъяснённых отличий. Пользовательский скрипт — исключение, он выполняется снова.

Если что-то пошло не так

В плане появились неожиданные изменения

Не применяйте план, пока не разберётесь. Проверьте направление и состав выбора. Внутри выбранного объекта могут удаляться части, если это разрешает его тип; объекты вне набора не удаляются просто из-за отсутствия в источнике. Правила объектов.

Не хватает связанного объекта

Предупреждение о зависимости не означает, что объект уже добавлен. Проверьте его наличие в приёмнике; если нужен перенос, включите его в выбор источника и постройте новый план. Holkas предупреждает об известных ему недостающих зависимостях, а не гарантирует обнаружение всех связей.

Одна из команд завершилась ошибкой

Часть изменений уже могла примениться. При обычной ошибке оставшиеся команды этого объекта пропускаются, а работа с другими объектами продолжается. Инфраструктурный сбой может оборвать весь запуск. Общего отката нет — сначала изучите журнал. Поведение при ошибках.

План пустой, а ожидаемый результат не получен

Проверьте выбор объектов и сами изменения. Например, изменение только содержимого шаблона существующего отчёта сейчас не формирует Update. Пустой план не доказывает совпадение всего приложения. Ограничение сравнения отчётов.