worksolutions / bitrix-reduce-migrations

Bitrix module for migrations
https://worksolutions.ru
MIT License
87 stars 15 forks source link
bitrix bitrix-module migrations

Модуль миграций 2.0

Модуль миграций для CMS "1С-Битрикс" – быстрые и стабильные обновления баз данных проекта.

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

Возможности

Преимущества

Как это работает?

Простейшая схема работы команды над проектом выглядит следующим образом:

Схема работы над проектом

Есть локальные площадки програмистов и есть сервера которые доступны "извне" через Интернет. Каждая площадка имеет отдельную базу данных. Базы данных площадок отличаются только наполнением, но схемы (таблицы, поля, инфоблоки и т.д.) данных одинаковы.

Процесс изменения схемы данных (либо манипуляции над данными) которые нужны для каждой площадки следующий:

  1. Необходимо сделать изменения в схеме данных на проекте. К примеру добавить поле в одну из сущностей, которое будет использоваться новой функцией.
  2. Разработчик создает миграцию добавления нового поля. Миграцией будет являться файл (класс php), определенного формата, в котором необходимо написать сценарии обновления (добавления поля) и отката (удаления поля) на случай неудачного применения обновления или отката версии проекта на предыдущую.
  3. Запускает миграцию на локальной копии проекта, отлаживает применение и откат миграции.
  4. Регистрирует миграцию в системе версионирования. Так исходный код для запуска миграции распространится по всем платформам.
  5. Каждая площадка получившая исменения исходного кода запускает обновления миграций.

Таким образом новое поле в базу данных добавляется для всех площадок получивших изменения одинаковым образом.

Что дальше?