Code Monkey home page Code Monkey logo

bitrix-module-migrations's Introduction

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

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

Предупреждение об ограниченной поддержке

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

Введение

Как известно, исходный код плотно взаимодействует со структурой данных в проекте. С появлением новых функциональных требований исходный код изменяется, он требует новые поля для хранения даных, либо определяет новые сущности, которые отражаются в отдельных таблицах, а в проектах основанных на CMS "1С-Битрикс" данные в основном отражены в инфоблоках.

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

Модуль миграций основан на исходном коде ядра CMS и поэтому позволяет в наиболее удобной форме осуществлять синхронизацию. Идея состоит в том, что проект имеет специальный каталог для хранения файлов, описывающих преобразование данных; этот каталог обновляется вместе с исходным кодом проекта. При обновлении исходного кода можно обновить базу данных проекта, чтобы она соответствовала новому функционалу.

Модуль имеет два типа синхронизации:

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

Разделы описания

bitrix-module-migrations's People

Contributors

dsxack avatar garr1nch4 avatar lex111 avatar sabirovruslan avatar sokolovsky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bitrix-module-migrations's Issues

Добавить в описание модуля правила применения миграций в зависимости от настроек модуля

  1. На Production стоит, что автоматически создавать миграции только для работы с инфоблоками.
  2. На Dev стоит, что автоматически cоздавать миграции не только для инфоблоков, но и для свойств.

Что будет, когда на DEV создают новый инфоблок со свойствами и пытаются применить миграции на Production?

Описать правила.

Ошибки диагностирования

Приветствую!

Проблема в следующем:
Развернул dev-копию сайта из prod-версии скриптом restore.php. После сменил версию платформы и владельца в разделе «Миграции данных». Создал новый инфоблок на dev-версии сайта, свойства у него и т. д. После переноса файлов миграции на prod-версии в применениях миграции вижу следующее:
2016-05-12_14-41-41

А если перейти в диагностику, то следующее:
2016-05-12_14-41-54

Подскажите, как пофиксить?

Требуется функционал поэтапного удаления модуля

При удалении модуля требуется предоставить выбор, оставить ли служебную информацию модуля, такую как:

  • настройки модуля в таблице b_option
  • служебные таблицы модуля
  • файлы миграций

Дополнительно:
Так как при удалении служебной информации модуля он не сможет в дальнейшем стабильно работать с уже работающими модулями на других машинах - нужно продумать функционал, который будет об этом либо предупреждать, либо запрещать применять / миграции на этих машинах, для того, чтобы не произошло рассинхронизации.

Обращение включает в себя обращения:
#15, #13

Добавить префикс для ручных сценариев в журнале изменений

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

  • Свойство информационного блока. Добавление
  • Информационный блок. Добавление

Предлагаю для ручных миграций не просто выводить название, а использовать префикс:

  • Сценарий. Название сценария

Не создаются миграции при импорте

При импорте элементов - для свойств типа "список" не генерируются авто-миграции (если добавляются новые значения списка)

Импорт (CSV)
Инфоблок 2.0

Версионирование. Не удаляется сторонняя ссылка при удалении сущьности

Разработчик 1 удаляет свойство. Формируется миграция удаления свойства. Разработчик 2 применяет миграцию которая удаляет свойство и свою ссылку на это свойство не удалив сторонние ссылки. При проходе диагностики - ошибка соответствия ссылок.

Ошибка References item not exists by array

Ребята, подскажите, что значит эта ошибка при применении миграции?

Свойство информационного блока. Добавление: References item not exists by array (
'id' => '1',
'group' => 'iblock',
'dbVersion' => 'e1da56b883733a52f6a20b9f03de08ae',
)

https://yadi.sk/i/vzitHbcjqc5MD

error on updating Bitrix DB with restore.php

i have a copy of DataBase from developing server.
bitrix-module-migrations is installed on develop and local versions.
run restore.php on local machine (update with developing server DB) and finally have an error: Срок работы пробной версии продукта истек. Вы можете купить полнофункциональную версию продукта на сайте...(trial period expired)
local version trial period just began and develop version trial period has not expired.
need help - what can be the cause of that error?

Не давать создавать инфоблоки при неактуальной версии БД в модуле миграций

При переносе проекта на production забыли изменить версию БД в модуле миграций.
Создали инфоблок.
Затем при попытке отредактировать инфоблок получаем ошибку:
Module platform version is not valid

По идее эта ошибка должна была появится еще на этапе создания инфоблока

Мигации b_option

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

Миграция инфоблока привязанного к двум сайтам при многосайтовости

Создали инфоблок на локальном сайте, привязали инфоблок к двум сайтам http://joxi.ru/eAO08jBuRZzaro
При переносе на сервер app , применили миграции, ошибок не было.
Но у инфоблока не добавилась привязка ко второму сайту http://joxi.ru/E2pW78KUqYQQmY

Не мигрируются доступы к инфоблокам.

Контекст: вкладка "Доступы" при редактировании инфоблока

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

Создание сценария обновления

В название были двойные ковычки, в классе название тоже находится в двойных ковычках, в результате получается так
"ИБ "Игры скачиваемые", добавлен партнёрский сайт";
Нужно экранировать спец. символы.

Страница "Применение", список миграций был пуст

Через гит добавил добавил файл миграции, в папку "migrations", файл "1407829800.json".
На странице "Применение" (http://awesomescreenshot.com/0663au2f49)
Удачно примененные миграции: Список пуст.
Нажал на кнопку "Применить", получил 502 ошибку, перезагрузил страницу. Ещё раз нажал на кнопку "Применить", изменилась дата последнего обновления. Но список примененных миграций пуст.
Миграция применилась, в миграции было создание Иб. Иб создался.

Создались дубликаты инфоблока

На продакшене, были изменены свойства ИБ. Создались миграции.
Перенес миграции на локальную копию, нормально пременить миграции не удалось, вылетел Exception (issues 4). Иб который правил на продакшене, создался два раза на локалке, без свойств.

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.