Описание процесса работы с модулем “миграто”
Начальная установка
Установку модуля и первоначальное определение XML-ключей нужно проводить на основной базе (боевом сайте), которая в последствии должна быть восстановлена на всех прочих копиях сайта (тестовые, писочницы разработчиков).
-
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
На этом этапе получаем актуальные БД в рамках всех синхронизируемых модулем миграции сущностей.