Редактировать

Описание процесса работы с модулем “миграто”

Начальная установка

Установку модуля и первоначальное определение XML-ключей нужно проводить на основной базе (боевом сайте), которая в последствии должна быть восстановлена на всех прочих копиях сайта (тестовые, писочницы разработчиков).

  • 1) Установить модуль

  • 2) Ознакомиться

  • 3) Провести первоначальный экспорт БД

    • 3.1) Просмотреть текущее состояние заполненности уникальными ключами данных в БД

      Если ваша операционная система windows

        php run.php validate (-W или --win)
      

      Иначе

        php run.php validate (-F или --fails)
      
    • 3.2) Если на предыдущем шаге были получены ошибки, попробовать автосоздать ключи

      php run.php autofix -v
      
    • 3.3) Проверить состояние ключей еще раз, в случае обнаружения ошибок - исправлят вручную.

      К каким данным обращается модуль и какие поля использует для построения ключей, можно увидеть в классах модуля /local/modules/intervolga.migrato/lib/data/module/

      Повторять просмотр и исправление до устранения всех ошибок

    • 3.4) Выполнить экспорт

      php run.php export -v

      Данные появятся в папке /local/migrato - это и есть нужная нам миграция, которую нужно закоммитить.

Первоначальный перенос данных на ПК разработчика

  • 1) Перенести базу с основного сайта, на момент переноса в БД должны быть присвоены XML-ключи модуля миграции для всех синхронизируемых сущностей.

  • 2) Стянуть изменения репозитория, там должен быть модуль миграций и экспорт из основной БД.

  • 3) Контрольно проверить текущее состояние заполненности уникальными ключами данных в БД и соответсвие данных полученной миграции.

    Если ваша операционная система windows

      php run.php validate (-W или --win)
    

    Иначе

      php run.php validate (-F или --fails)
    

    В случае успешной проверки будут выведены строки:

    Команда Проверка данных выполнена
    [ ok ] Ошибок нет
    

Пример рабочего процесса

Разработчик вносит правки в БД своей писочницы, на боевом сервере паралельно так же происходят изменения, к примеру клиент добавляет свойство в ИБ или что-то еще.

Что нужно получить в итоге: не потерять изменения клиента на сервере, перенести правки разработчика на сервер.

На боевом сервере

  • 1) Проверить валидность ключей записей

    php run.php validate -F
    
  • 2) Исправить ошибки вручную или автоматически

    php run.php autofix -v
    
  • 3) Создать миграцию

    php run.php export -v
    
  • 4) Создать коммит с файлами миграции и иными измененными файлами, прокинуть коммит в общий репозиторий

На ПК разработчика

  • 1) Проверить валидность ключей записей

    php run.php validate -F
    
  • 2) Исправить ошибки вручную или автоматически

    php run.php autofix -v
    
  • 3) Создать миграцию

    php run.php export -v
    
  • 4) Получить изменения с основного сервера, решить конфликты, при их возникновении

  • 5) Выполнить импорт данных

    php run.php import -v
    

    Проверить корректность

  • 6) Создать коммит с файлами миграции и иными измененными файлами, прокинуть коммит в общий репозиторий

Применение миграции на боевом сервере

Предполагается, что за период от решения конфликтов в ветке master на ПК разработчика, до получения последних коммитов на боевом сервере, изменений данных на боево сервере не произошло. Если такой уверенности нет, то стоит провести проверку валиности ключей и создать миграцию на бою еще раз.

  • 1) Получить изменения из удаленного репозитория

  • 2) Предполагается что все конфликты миграций были решены на ПК разработчика.

    !!!Важно: в начале своей работы модуль миграций закрывает публицную часть сайта.

    Выполнить импорт данных миграции

    php run.php import -v
    

На этом этапе получаем актуальные БД в рамках всех синхронизируемых модулем миграции сущностей.