В своем сообщении о том, как мы делаем деплой на проектах речь в комментариях зашла о том, как быть с миграциями данных. Мы работали как раз над этой проблемой и я обещал поделится результатами.
Сначала немного предистории. [CUT] В идеальном мире с одним проектом работает один программист. В небольших компаниях примерно так и есть. По мере роста уровня проектов реализуемых компанией над одним проектом уже может работать несколько человек. И как тут поддерживать актуальные данные между собой становится проблемой.
Изначально мы использовали удаленную базу данных, что позволяло иметь актуальную версию схемы данных. Этот способ с одной стороны хорош, но имеет ряд недостатков в виде зависаний в работе удаленной БД и в переносе изменений на production при релизе. Всегда что-то да забывали перенести в базу данных на production, что приводило к ошибкам.
Когда нам это все надоело мы подумали и решили, что программисты будут работать с локальной базой данных, но при этом в админке они ничего не могут делать. Все изменения делались с помощью API в файлах миграций, то есть надо добавить инфоблок новостей - пиши код на API. Это позволило упростить работу по переносу изменений в БД при релизе, но постоянно отвклекало программистов, даже не смотря на все вспомогательные скрипты, что мы использовали. Хотя сейчас на ряде проектов мы так и работаем.
Во время поездки на зимнюю конференцию мы набросали схему будущего модуля, но как обычно это бывает свои проекты делаются в самую последнюю очередь, и вот сейчас можно показать первые результаты работы.
Основная часть работы с данными идет в инфоблоках, поэтому в первую версию у нас вошли именно они. Наш модуль миграций умеет переносить между версиями проекта типы инфоблоков, сами инфоблоки и их свойства, которые входят в коробку. Также под миграции можно вынести разделы инфоблоков, если того требует бизнес-логика проекта.
Модуль расширяем, то есть в миграции можно будет подключить любые сущности, которые есть в “1С-Битрикс”. Модуль находится в публичном репозитарии на github, поэтому у нас есть надежда, что количество сущностей поддерживаемых модулем будет расти с помощью сообщества.
В случае развития функционала модуля планируется периодически выкладывать стабильную сборку в виде модуля на маркетплейс. Сейчас на него загружена первая версия.
Для получения первой обратной связи и написания руководства как пользоваться модулем хотелось бы показать его некой фокус-группе. Предварительно сделаем групповой созвон в скайпе, где мы расскажем о модуле и дадим его в использование. Желающие могут отмечаться в комментариях. Я вам напишу в личку.
а мы от симфони прикручивали миграции, потом надоело таскать все зависимости и написали модуль небольшой радует что в битриксовом сообществе начали подниматься такие темы как до этого работали раньше не понимаю, фтп впятером на продакшене чтоли ))
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».