Полный цикл в digital

Миграция базы данных

Модуль Миграции для разработчиков использует класический подход в виде инсталятора. Инсталлятор — это класс с двумя методами:

  1. up накатить миграцию
  2. down откатить миграцию

Установка модуля

Установка модуля стандартная и не требует нестандартных действий. До момента установки модуля убедитесь, что на сайте есть путь /local/php_interface/, в который скриптом будут добавлены две папки:

  • migrations
  • migrations.archive

Если указанного выше пути нет, в файловой структуре, эти две папки создадутся в /bitrix/php_interface/, что будет нарушением парадигмы использования папки /local/ в качестве основной для разработки.

Настройка модуля

Сразу после установки, модуль готов к использованию. На странице Настройки модуля расположенной по адресу /bitrix/admin/settings.php?lang=ru&mid=sprint.migration можно:

  • Просмотреть параметры предустановленной конфигурации
  • Создать свою конфигурацию (отличную от предустановленной)
  • Удалить файл конфигурации, файлы миграций и записи в таблице миграций
  • Установить гаджет "Сводка по миграциям"
  • Сбросить настройки модуля

Создание миграций

Модуль расположен по следующиму пути: Настройки -> Миграции для разработчиков -> Миграции (cfg), модуль позволяет создавать миграции двумя способами:

  1. Вручную создать собственную миграцию. Для этого необходимо, создать болванку миграции, используя блок Создать простую миграцию и дописать в нее свой код, опираясь на документацию
  2. Использовать предустановленные миграции

Предустановленные миграции

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

  • Создать миграцию для инфоблока
  • Перенести элементы инфоблоков
  • Создать миграцию для пользовательских полей
  • Создать миграцию для настроек модулей
  • Создать миграцию для почтовых событий
  • Создать миграцию для групп пользователей
  • Создать миграцию для highload-блока
  • Перенести элементы highload-блоков
  • Создать миграцию для агентов
  • Создать миграцию для веб-формы
  • Создать миграцию для пользовательских настроек

Практический пример создания миграции

Рассмотрим создание миграции на примере миграции для инфоблока. Для теста был создан новый тип инфоблока и в нем инфоблок, в инфоблоке были настроены:

  • Поля
  • Поля разделов
  • Доступы
  • Подписи
  • Журнал событий

Также в ифоблоке были созданы свойства разных типов.

Переходим в модуль

Переходим в раздел Настройки -> Миграции для разработчиков -> Миграции (cfg).

Создаем миграцию

Нажимаем на кнопку Создать миграцию для инфоблока:

Заполняем поля и жмем кнопку Далее:

  • Заголовок если оставить без изменений, будет вида "#NAME##TIMESTAMP#"
  • Описание не обязательное поле
Выполняем миграцию

В выпадающем списке выбираем инфоблок и отмечаем, что должно быть в миграции. Для продолжения жмем кнопку Далее:

Для завершения создания миграции жмем кнопку Далее и получаем сообщение, что миграция создана:

Просмотр миграции

На сервере данная миграция появилась в /local/php_interface/migrations/. Созданная миграция будет содержать описанный метод UP, необходимо описать метод DOW, который для этого случая будет выглядеть следуюшим образом:

public function down()
{
$helper = $this->getHelperManager();
$status = $helper->Iblock()->deleteIblockIfExists('php');
if ($status) {
$this->outSuccess('Информационный блок удален');
} else {
$this->outError('Информационный блок НЕ УДАЛЕН!!!');
}
}
Перенос миграции

Далее через гит переносим эту миграцию на требуемые сайты. На сайте, где необходимо развернуть миграцию, заходим в Настройки -> Миграции для разработчиков -> Миграции (cfg) и видим нашу перенесенную миграцию:

Жмем кнопку Установить и подтверждаем установку миграции в всплывающем окне:

В окне с логом видим результат:

Результат
  1. Создался тип инфоблока и сам инфоблок
  2. Все свойства перенеслись без ошибок
  3. Все настройки инфоблока перенеслись корректно
  4. Сама миграция заняла по времени не больше 5 минут
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг