Giter Site home page Giter Site logo

voicon / bitrix-reduce-migrations Goto Github PK

View Code? Open in Web Editor NEW

This project forked from worksolutions/bitrix-reduce-migrations

0.0 1.0 0.0 4.12 MB

Bitrix module for migrations

Home Page: https://worksolutions.ru

License: MIT License

PHP 99.40% Smarty 0.39% TSQL 0.21%

bitrix-reduce-migrations's Introduction

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

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

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

Возможности

  • Составление сценариев миграций с помощью специальных билдеров, специально предназначенных для этих нужд. Таким образом создание новых сущностей данных будет происходить не труднее чем через административный интерфейс;
  • Актуализация данных. Бавают случаи когда данные нужно "подправить" не меняя структуры - миграции подходят для этого как нельзя кстати. Сценарий будет запущен один раз и для всех площадок;
  • Работа через командную строку. Обновление можно выполнять как вместе с обновлением исходного кода, так и использовать специальные инструменты систем версионирования - запуска скриптов после обновления.

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

  • Стабильность. Сценарии миграций данных составляются и отлаживаются командой.
  • Удобство. Модуль обладает широким спектром функционала для манипулирования миграциями.
  • Информативность. Удобный вывод списков миграций при работе через консоль.
  • Предсказуемость. Можно указывать примерное время выполнения миграций – это будет спобоствовать правильному принятию решения при обновлении.

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

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

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

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

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

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

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

Что дальше?

bitrix-reduce-migrations's People

Contributors

garr1nch4 avatar sokolovsky avatar sabirovruslan avatar aak74 avatar smotrovalilit avatar dsxack avatar romanzaycev avatar north-leshiy avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.