-
Notifications
You must be signed in to change notification settings - Fork 23
Доступные команды
Для работы с модулем необходимо подключиться к модулю по ssh к серверу и перейти в папку «корень_сайта/local/modules/intervolga.migrato/tools».
Для миграции данных существуют 4 команды:
- validate - валидация данных;
- autofix - автоисправление ошибок невалидности внешнего ключа;
- export - экспорт данных из бд в xml файлы;
- import - импорт данных из xml файлов в бд.
- importxmlid - импорт одной записи из xml файлов в бд.
После выполнения команды отобразиться отчет о выполнении. Возможны 3 вида отчета: краткий, подробный и очень подробный. Для управление видом отчета необходимо дописать флаг соотвественно: "-v", "-vv", "-vvv".
В случае возникновения ошибок можно их посмотреть в таблице intervolga.migrato, либо с помощью команды «log [--fails|-F]».
php run.php log -F
Так случается, что в некоторых ситуациях кодировка на сервере и в приложении, с помощью которого вы подключаетесь к серверу, может различаться. В таком случае необходимо дописать специальный флаг.
флаг = [--win|-W] - Если на сервере UTF-8, а на клиенте WINDOWS-1251.
флаг = [--utf|-U] - Если на сервере WINDOWS-1251, а на клиенте UTF-8.
Данная команда проверяет внешний ключ каждой записи:
- внешний ключ обязательно должен быть;
- внешний ключ должен состоять из цифр, букв латинского алфавита нижнего регистра [a-z] и знаков "_", "#", ".";
- внешний ключ не должен являться числом;
- внешний ключ не должен повторяться.
php run.php validate -F
Выводит таблицу ошибок со столбцами:
- Дата и время ошибки
- Контекст ошибки (в виде модуль:сущность, например main:event или iblock:iblock)
- Xml Id записи -- уникальный код, который модуль migrato использует для сопоставления записей при экспорте и импорте данных. У каждой сущности этот код вычисляется по разному. У одних это буквально XML_ID, у других -- символьный код, у третьих это контрольная сумма от нескольких контрольных полей. Подробнее можно увидеть в классе сущности в модуле миграции
- Id записи -- настоящий ID записи в БД. На него можно опираться при диагностике ошибок
- Название операции
- Описание проблемы. Если "Вычислен повторяющийся" -- значит где-то в БД есть еще одна запись с другим ID но таким же Xml Id
Внешний ключ генерируется по формату «наименование модуля-сокращенное наименование сущности-случайное число».
Случайное число генерируется функцией uniqid(), далее в нем удаляются точки и оно разбивается по 6 символов разделяемых знаком "-".
php run.php autofix -v
Генерирует для каждой записи в базе данных xml файл на основе конфигурационного файла.
В случае ошибки валидации при запущенном процессе экспорта, он прекратит своё выполнение.
php run.php export -v
Импортирует все данные из xml файлов, включенных в импорт в конфигурационном файле, находящихся по пути «корень_сайта/local/migrato/»
php run.php import -v
По умолчанию модуль запрещает импорт, если нет свежего полного бекапа сайта (в течение последних 2-ух часов). С помощью флага --force эту проверку можно обойти
По умолчанию модуль удаляет при импорте такие записи, для которых нет XML-файлов. С помощью флага --safe-delete можно отключить такое удаление.
По умолчанию модуль производит сброс кеша, обновление правил обработки адресов (urlrewrite.php), переиндексацию поиска и фасетного индекса. С помощью флага --quick можно пропустить эти действия
Импортирует одну запись из файла в БД. Зависимости должны быть разрешены перед вызовом команды вручную.
php run.php importxmlid <module> <data> <xmlid>
Данная команда создает записи для каждой сущности, которые генерируются случайным образом. Для этого был создан метод generateRandom со следующими варианты генерации данных:
- STRING_BOOL - генерирует значение вида Y или N.
- STRING0_<N> - генерирует N случайных символов.
- TEXT0_<N> - генерирует N случайных символов и разделяет их на слова от трех до девяти символов.
- NUMBER0_<N> - генерирует случайное число от 0 до N.
- BOOL - генерирует случайное булево число.
- FROM_LIST - выбирает случайное значение из переданного методу списка.
По умолчанию, в большинстве случаев, генерируются по две записи для каждой сущности. Данное количество можно изменять передав нужное значение в методы генерации.
php run.php generate -v
Данная команда позволяет проверить целостность данных при экспорте данных на сайт, и импорте этих же данных. Т.е. она проверяет, что при разработке новых процессов, или же доработки экспорта и импорта, не было ошибок которые могли бы повлиять на входные и выходные данные.
Проверяет по следующему алгоритму:
- Автоисправление ошибок.
- Экспорт данных с сайта.
- Экспорт опций с сайта.
- Копирование xml файлов, которые были сгенерированны в папку с постфиксом «_pld».
- Импорт данных на сайт.
- Импорт опций на сайт.
- Повторный экспорт данных с сайта.
- Повторный экспорт опций с сайта.
- Сравнение папок с xml файлами.
Сравнение выполняется с помощью утилиты diff. Отчет, если есть какие-то отличия, генерируется по пути «корень_сайта/local/migrato_old/report_<currentDateTime>.txt».
php run.php unittest -v