Про модуль миграции схемы данных

Про модуль миграции схемы данных

25 ноября 2014


Автор: Максим Мул
Миграции одно из самых "узких" мест "1С-Битрикс". Каждый решает эту проблему в меру своих потребностей и сил. Кто-то пишет одноразовые скрипты миграций, кто-то в ручном режиме переносит данные, сравнивая визуально рабочий сайт с тестовой площадкой. Модуль "Миграции схемы данных" призван решить эти проблемы без дополнительных затрат времени и сил разработчиков.

Модуль находится только в начале своего пути и пока работает только с пространством информационных блоков.

На данный момент модуль (версия 1.1.2) умеет переносить между копиями проекта типы информационных блоков, сами информационные блоки и их свойства, которые входят в коробку. Также под миграции можно вынести разделы информационных блоков, если того требует бизнес-логика проекта.

Модуль тестировался на версиях “1С-Битрикс” 14.5.xx и выше. Есть перечень автотестов разработчика. Функциональное тестирование выполнено при помощи тестировщиков.

Установка и настройка


Процедура установки модуля стандартная.

Фото 1: «1.jpg»

Во время установки мастер попросит указать путь к каталогу миграций. В этом каталоге будут создаваться файлы (импорта/экспорта) для поддержки актуального состояния схемы данных. Лучше всего каталог сделать версионируемым, используя систему контроля версия кода, в противном случае актуальность каталога необходимо будет обеспечивать в ручном режиме при помощи копирования файлов, учитывая все версии проекта.
После установки модуля, в его настройках, можно изменить путь к каталогу миграций, включить учет миграций разделов информационных блоков, а также активировать использование автотестов.

Фото 2: «2.jpg»

Включение автотестов в настройках необходимо только при работе с функциональной частью модуля миграций. Активирование этого флага на рабочем проекте может привести к добавлению лишних данных при выполнении автотестов в мониторе качества.

Начало работы

Перед началом работ необходимо определить какая версия проекта самая актуальная. Как правило это "боевая" версия сайта (production). На нее необходимо установить модуль миграций.
После этого надо сделать полную резервную копию проекта и развернуть его на всех остальных версиях проекта.
На каждой копии проекта необходимо убедиться, что версия базы данных модуля не совпадает с копией, на которой было сделано резервное копирование. Для этого сразу после разворота проекта необходимо перейти по пути Настройки - Миграции данных - Смена версии базы и сменить версию базы данных.

Фото 3: «3.jpg»

Применение полученных изменений

По мере того как ведется работа над проектом, в каталоге миграций накапливаются файлы. В случае переноса файлов на другую копию проекта их можно будет там применить. Для применения изменений необходимо перейти по пути Настройки - Миграции данных - Применение.

Фото 4: «4.png»

При нажатии на кнопку “Применить” произойдет накатывание миграций на данную копию проекта.

Откат изменений

Модуль позволяет откатить миграции, если этого необходимо нажать на кнопку “Откатить последние изменения” по пути Настройки - Миграции данных - Применение.

Фото 5: «5.png»

P. S. Находится в открытом доступе на github