korusdev/bim-core
Composer 安装命令:
composer require korusdev/bim-core
包简介
Bitrix db migration core libs
关键字:
README 文档
README
Версионная миграция структуры БД для 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:
curl -s https://getcomposer.org/installer | php
- Выполнить установочный скрипт:
php -r "readfile('https://raw.githubusercontent.com/cjp2600/bim/master/install');" | php
Автоматические действия установщика:
- Добавление файла bim в корень проекта.
- Инициализация composer autoloader в файле init.php
- Создание файла composer.json в корне проекта со ссылкой на bim репозиторий "require": { "koreychenko/bim-core": ">=1.2.0"}
1.2 Ручная установка
Для ручной установки bim необходимо:
- Установить Composer:
curl -s https://getcomposer.org/installer | php
- Добавть инициализацию composer (в файл init.php добавить запись):
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php')) require_once $_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php';
- Создать в корне сайта файл composer.json с содержимым:
{
"require": {
"koreychenko/bim-core": ">=1.2.0"
}
}
- В .gitignore добавить запись:
/vendor
- Done! :):
php vendor/bin/bim info
2 Настройка
Для начала работы обновляем composer и создаем миграционную таблицу в БД:
php composer.phar update
Создаём таблицу миграций :
php bim init
Настройки параметров расположения файлов миграций, логов, и названия таблицы с миграциями.
По умолчанию, данные берутся из vendor/koreychenko/bim-core/src/config/bim.json, но их можно переопределить.
Для этого необходимо добавить в файл /bitrix/.settings.php следующую секцию:
'migrations' => [ "value" => [ 'migration_path' => 'local/migrations', 'logging_path' => '_log/bim', 'migration_table' => 'bim_migrations', ], 'readonly' => true, ]
Все пути прописываются относительно $_SERVER['DOCUMENT_ROOT']
3 Выполнение миграций [BIM UP]
- Общее выполнение:
php bim up
Выполняет полный список не выполненых либо ранее отмененных миграционных классов отсортированых по названию (timestamp).
- Еденичное выполнение:
php bim up 1423660766
Выполняет указанную в праметрах миграцию.
- Выполнение по временному периоду:
php bim up --from="29.01.2015 00:01" --to="29.01.2015 23:55"
- Выполнение по тегу:
php bim up --tag=iws-123
Выполняет все миграции где найден указанный тег в описании.
- Логирование:
php bim up --logging
4 Отмена выполненых миграций [BIM DOWN]
- Общая отмена:
php bim down
Отменяет весь список выполненных миграционных классов.
- Еденичная отмена:
php bim down 1423660766
Отменяет указанную в праметрах миграцию.
- Отмена по временному периоду:
php bim down --from="29.01.2015 00:01" --to="29.01.2015 23:55"
- Отмена по тегу:
php bim down --tag=iws-123
Отменяет все миграции где найден указанный тег в описании.
- Логирование:
php bim down --logging
5 Вывод списка миграций [BIM LS]
- Общей список:
php bim ls
- Список выполненных миграций:
php bim ls --a
- Список отменённых миграций:
php bim ls --n
- Список миграций за определённый период времени:
php bim ls --from="29.01.2015 00:01" --to="29.01.2015 23:55"
- Список миграций по тегу:
php bim ls --tag=iws-123
6 Создание новых миграций [BIM GEN]
Существует два способа создания миграций:
1) Создание пустой миграции:
Создается пустой шаблон миграционного класса. Структура класса определена интерфейсом Bim/Revision и включает следующие обязательные методы:
- up(); - выполнение
- down(); - отмена
- getDescription(); - получения описания.
- getAuthor(); - получение автора.
Дополнительно запрашивается:
- [Description]
Пример:
php bim gen
Также возможно передать description опционально:
php bim gen --d="new description #iws-123"
Далее создается файл миграции вида: */[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]
Пример:
php bim gen IblockType:add
Также возможно передать iblock type id и description опционально:
php bim gen IblockType:add --typeId=catalog --d="new description #iws-123"
2.2 Iblock ( php bim gen Iblock:[add|delete] ):
Создается Миграционный код "ИБ" включая созданные для него (IblockProperty)
Дополнительно запрашивается:
- [IBLOCK_CODE]
- [Description]
Пример:
php bim gen Iblock:add
Также возможно передать iblock code и description опционально:
php bim gen Iblock:add --code=goods --d="new description #iws-123"
2.3 IblockProperty ( php bim gen IblockProperty:[add|delete] ):
Создается Миграционный код "Свойства ИБ"
Дополнительно запрашивается:
- [IBLOCK_CODE]
- [PROPERTY_CODE]
- [Description]
Пример:
php bim gen IblockProperty:add
Также возможно передать iblock code, property code и description опционально:
php bim gen IblockProperty:add --code=goods --propertyCode=NEW_ITEM --d="new description #iws-123"
2.4 Hlblock ( php bim gen Hlblock:[add|delete] ):
Создается Миграционный код "Highloadblock" включая созданные для него (UserFields)
Дополнительно запрашивается:
- [HLBLOCK_ID]
- [Description]
Пример:
php bim gen Hlblock:add
Также возможно передать hlblock id и description опционально:
php bim gen IHlblock:add --id=82 --d="new description #iws-123"
2.5 HlblockField ( php bim gen HlblockField:[add|delete] ):
Создается Миграционный код "HighloadblockField (UserField)"
Дополнительно запрашивается:
- [HLBLOCK_ID]
- [USER_FIELD_ID]
- [Description]
Пример:
php bim gen HlblockField:add
Также возможно передать hlblock id, hlblock field id и description опционально:
php bim gen IHlblock:add --hlblockid=93 --hlFieldId=582 --d="new description #iws-123"
2.6 Group ( php bim gen Group:[add|delete] ):
Создается Миграционный код "Group (Группы пользователей)"
Дополнительно запрашивается:
- [GROUP_ID]
- [Description]
Пример:
php bim gen Group:add
Также возможно передать group id, и description опционально:
php bim gen Group:add --id=5 --d="new description #iws-123"
2.7 Site ( php bim gen Site:[add|delete] ):
Создается Миграционный код "Site (Сайты)"
Дополнительно запрашивается:
- [SITE_ID]
- [Description]
Пример:
php bim gen Site:add
Также возможно передать site id, и description опционально:
php bim gen Site:add --id=s1 --d="new description #iws-123"
Обратите внимание!
что миграционные классы созданные по наличию, выполняются автоматически.
Режим multi [BIM GEN MULTI]:
Так же доступен режим массовой генерации по наличию. Данный способ удобен при созданиие миграций по наличию для множества одинаковых элементов. Например для нескольких UserFields.
Пример:
php bim gen multi
Тегирование миграций:
При создании нового миграционного класса существует возможность выставления тега в комментарии к миграции для дальнейшей более удобной отмены либо выполнения группы миграций связанных одним тегом.
Формат: #[название]
Пример: Как вариант применения, вставлять тег номера задачи из трекера.
[Description]: #IWS-242 Add new Iblock[services]
Логирование:
Существует возможность логирования информации о состоянии выполнения или отмены миграций.
Пример:
php bim up --logging
или
php bim down --logging
Примечание: По умолчанию инфомация сохраняется в файл вида _log/bim/[Year]/[Month]/[Day]/bim.log
7 Информация о проекет [BIM INFO]
Информация о текущем bitrix проекте:
- Название проекта
- Версия bitrix
- Редакция bitrix
Пример:
php bim info
korusdev/bim-core 适用场景与选型建议
korusdev/bim-core 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 978 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 06 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「db」 「migration」 「bitrix」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 korusdev/bim-core 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 korusdev/bim-core 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 korusdev/bim-core 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Lets you add foreign keys in a swift! Foreign key adder in laravel migration.
Manage PostgreSQL schemas in Laravel applications
The YADM migrations
CMS Bitrix migrations
Data migration mechanism for php using dbal do doctrine with pdo, schema and queryBuilder
统计信息
- 总下载量: 978
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-06-11