Download the PHP package koreychenko/bim-core without Composer
On this page you can find all versions of the php package koreychenko/bim-core. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download koreychenko/bim-core
More information about koreychenko/bim-core
Files in koreychenko/bim-core
Informations about the package bim-core
Bitrix Migration (BIM)
Версионная миграция структуры БД для 1С Битрикс CMS
- Установка
- Автоматическая установка
- Ручная установка
- Настройка
- Выполнение - bim up
- Отмена - bim down
- Вывод списка - bim ls
- Создание - bim gen
- Создание пустой миграции
- Создание миграционного кода по наличию
- Модуль (iblock,highloadblock)
- IblockType
- Iblock
- IblockProperty
- Highloadblock
- HighloadblockField
- Модуль (main)
- Group
- Site
- Режим multi - bim gen multi
- Тегирование миграций
- Логирование
- Информация о проекте - bim info
1 Установка
1.1 Автоматическая установка
Для установки и инициализации bim для bitrix проекта необходимо выполнить следующиие действия из корня проекта:
-
Установить Composer:
- Выполнить установочный скрипт:
Автоматические действия установщика:
- Добавление файла bim в корень проекта.
- Инициализация composer autoloader в файле init.php
- Создание файла composer.json в корне проекта со ссылкой на bim репозиторий "require": { "koreychenko/bim-core": ">=1.2.0"}
1.2 Ручная установка
Для ручной установки bim необходимо:
-
Установить Composer:
-
Добавть инициализацию composer (в файл init.php добавить запись):
-
Создать в корне сайта файл composer.json с содержимым:
-
В .gitignore добавить запись:
- Done! :):
2 Настройка
Для начала работы обновляем composer и создаем миграционную таблицу в БД:
Создаём таблицу миграций :
Настройки параметров расположения файлов миграций, логов, и названия таблицы с миграциями.
По умолчанию, данные берутся из vendor/koreychenko/bim-core/src/config/bim.json
, но их можно переопределить.
Для этого необходимо добавить в файл /bitrix/.settings.php
следующую секцию:
Все пути прописываются относительно $_SERVER['DOCUMENT_ROOT']
3 Выполнение миграций [BIM UP]
- Общее выполнение:
Выполняет полный список не выполненых либо ранее отмененных миграционных классов отсортированых по названию (timestamp).
- Еденичное выполнение:
Выполняет указанную в праметрах миграцию.
-
Выполнение по временному периоду:
- Выполнение по тегу:
Выполняет все миграции где найден указанный тег в описании.
- Логирование:
4 Отмена выполненых миграций [BIM DOWN]
- Общая отмена:
Отменяет весь список выполненных миграционных классов.
- Еденичная отмена:
Отменяет указанную в праметрах миграцию.
-
Отмена по временному периоду:
- Отмена по тегу:
Отменяет все миграции где найден указанный тег в описании.
- Логирование:
5 Вывод списка миграций [BIM LS]
-
Общей список:
-
Список выполненных миграций:
-
Список отменённых миграций:
-
Список миграций за определённый период времени:
- Список миграций по тегу:
6 Создание новых миграций [BIM GEN]
Существует два способа создания миграций:
1) Создание пустой миграции:
Создается пустой шаблон миграционного класса. Структура класса определена интерфейсом Bim/Revision и включает следующие обязательные методы:
- up(); - выполнение
- down(); - отмена
- getDescription(); - получения описания.
- getAuthor(); - получение автора.
Дополнительно запрашивается:
- [Description]
Пример:
Также возможно передать description опционально:
Далее создается файл миграции вида: */[migrations_path]/[timestamp].php
Например: /migrations/123412434.php
2) Создание миграционного кода по наличию:
Создается код развертывания/отката существующего элемента схемы bitrix БД. На данный момент доступно генерация по наличию для следующих элементов bitrix БД:
2.1 IblockType ( php bim gen IblockType:[add|delete] ):
Создается Миграционный код "Типа ИБ" включая созданные для него (UserFields, IBlock, IblockProperty)
Дополнительно запрашивается:
- [IBLOCK_TYPE_ID]
- [Description]
Пример:
Также возможно передать iblock type id и description опционально:
2.2 Iblock ( php bim gen Iblock:[add|delete] ):
Создается Миграционный код "ИБ" включая созданные для него (IblockProperty)
Дополнительно запрашивается:
- [IBLOCK_CODE]
- [Description]
Пример:
Также возможно передать iblock code и description опционально:
2.3 IblockProperty ( php bim gen IblockProperty:[add|delete] ):
Создается Миграционный код "Свойства ИБ"
Дополнительно запрашивается:
- [IBLOCK_CODE]
- [PROPERTY_CODE]
- [Description]
Пример:
Также возможно передать iblock code, property code и description опционально:
2.4 Hlblock ( php bim gen Hlblock:[add|delete] ):
Создается Миграционный код "Highloadblock" включая созданные для него (UserFields)
Дополнительно запрашивается:
- [HLBLOCK_ID]
- [Description]
Пример:
Также возможно передать hlblock id и description опционально:
2.5 HlblockField ( php bim gen HlblockField:[add|delete] ):
Создается Миграционный код "HighloadblockField (UserField)"
Дополнительно запрашивается:
- [HLBLOCK_ID]
- [USER_FIELD_ID]
- [Description]
Пример:
Также возможно передать hlblock id, hlblock field id и description опционально:
2.6 Group ( php bim gen Group:[add|delete] ):
Создается Миграционный код "Group (Группы пользователей)"
Дополнительно запрашивается:
- [GROUP_ID]
- [Description]
Пример:
Также возможно передать group id, и description опционально:
2.7 Site ( php bim gen Site:[add|delete] ):
Создается Миграционный код "Site (Сайты)"
Дополнительно запрашивается:
- [SITE_ID]
- [Description]
Пример:
Также возможно передать site id, и description опционально:
Обратите внимание!
что миграционные классы созданные по наличию, выполняются автоматически.
Режим multi [BIM GEN MULTI]:
Так же доступен режим массовой генерации по наличию. Данный способ удобен при созданиие миграций по наличию для множества одинаковых элементов. Например для нескольких UserFields.
Пример:
Тегирование миграций:
При создании нового миграционного класса существует возможность выставления тега в комментарии к миграции для дальнейшей более удобной отмены либо выполнения группы миграций связанных одним тегом.
Формат: #[название]
Пример: Как вариант применения, вставлять тег номера задачи из трекера.
Логирование:
Существует возможность логирования информации о состоянии выполнения или отмены миграций.
Пример:
или
Примечание: По умолчанию инфомация сохраняется в файл вида _log/bim/[Year]/[Month]/[Day]/bim.log
7 Информация о проекет [BIM INFO]
Информация о текущем bitrix проекте:
- Название проекта
- Версия bitrix
- Редакция bitrix
Пример:
All versions of bim-core with dependencies
wp-cli/php-cli-tools Version *
alchemy/zippy Version >=0.3.5