разработчикам26 января 2016

Обновление проектов — новый подход. Выбираем путь стабильности

Максим СоколовскийДиректор

Практика показала, что тема миграций в битрикс-сообществе обсуждается не так широко, как хотелось бы. Тем не менее, судя по количеству разработчиков, которых заинтересовал наш модуль на GitHub, делиться опытом однозначно стоит.

Миграции схемы данных: продолжаем использовать

С момента последнего отчета о жизни нашего решения, мы продолжаем активно его использовать на проектах и теперь с уверенностью можем сказать, что модуль полностью выполняет рутинную работу мигрирования структуры базы данных между проектами.

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

Во время использования модуля появилась необходимость в интерфейсе командной строки при обновлениях. Основная проблема была в том, что некоторые скрипты миграций могут выполняться продолжительное время, что приводило к автоматической остановке скрипта при применении миграций в административной панели «1С-Битрикс».

В итоге, был добавлен режим командной строки, который позволяет работать с миграциями в консоли и предоставляет два больших преимущества:

  • Время применения миграций не ограничено таймаутом сервера, с которым можно столкнуться при работе из административной панели. Актуально для «ручных» миграций по изменению структуры архитектуры проекта;
  • Появилась возможность автоматизировать применение миграцией с обновлением кода. Теперь при обновлении кода на production-сервере можно одновременно обновить структуру БД, на которую опирается новый код, не получив при этом фатальных ошибок. Для реализации подхода можно использовать CYPB Git.

Файл для работы с миграциями из командной строки расположен по пути: bitrix/tools/ws_migrations.php.

Миграции схемы данных: продолжаем использовать

Вызов помощи отображает список доступных действий

Миграции схемы данных: продолжаем использовать

Просмотр списка подготовленных миграций

Миграции схемы данных: продолжаем использовать

Применение миграций

Миграции схемы данных: продолжаем использовать

Откат последнего изменения

Также были добавлены некоторые технические детали улучшающие работу модуля при работе с автоматическими миграциями. Наша команда и дальше продолжит развивать решение. Ждем от вас обратной связи по его использованию.


Более детальное описание модуля есть на GitHub.

Сам модуль доступен в Marketplace.

UPD: Команда сайта Битрикс-Эксперты записала подкаст, раскрывающий особенности модуля миграций.