PHPackages                             koreychenko/bim-core - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. koreychenko/bim-core

ActiveLibrary[Database &amp; ORM](/categories/database)

koreychenko/bim-core
====================

Bitrix db migration core libs

1.3.1(6y ago)09512[1 PRs](https://github.com/Koreychenko/bim-core/pulls)MITPHP

Since Feb 11Pushed 5y ago1 watchersCompare

[ Source](https://github.com/Koreychenko/bim-core)[ Packagist](https://packagist.org/packages/koreychenko/bim-core)[ RSS](/packages/koreychenko-bim-core/feed)WikiDiscussions master Synced yesterday

READMEChangelog (1)Dependencies (3)Versions (25)Used By (0)

Bitrix Migration (BIM)
=======================================================

[](#bitrix-migration-bim)

[![Latest Stable Version](https://camo.githubusercontent.com/47b25ad32901e17aba5ec200e8644ca2aecea6b8e0230beba4fdcf0c12eeb848/68747470733a2f2f706f7365722e707567782e6f72672f636a70323630302f62696d2d636f72652f762f737461626c652e737667)](https://packagist.org/packages/cjp2600/bim-core) [![Total Downloads](https://camo.githubusercontent.com/20352c8e9944ab37a15ec15f0693ddb799edae2714674260828c11e883f59821/68747470733a2f2f706f7365722e707567782e6f72672f636a70323630302f62696d2d636f72652f646f776e6c6f6164732e737667)](https://packagist.org/packages/cjp2600/bim-core) [![Latest Unstable Version](https://camo.githubusercontent.com/3ccd54ff0ce84d7f64005b752d64713cfc454851ed5f32f3ab129172565e86e1/68747470733a2f2f706f7365722e707567782e6f72672f636a70323630302f62696d2d636f72652f762f756e737461626c652e737667)](https://packagist.org/packages/cjp2600/bim-core) [![License](https://camo.githubusercontent.com/d77116ad3d07134d3ded2f55488bb6cd61c554903f65899a7fa4af10d5e9881a/68747470733a2f2f706f7365722e707567782e6f72672f636a70323630302f62696d2d636f72652f6c6963656e73652e737667)](https://packagist.org/packages/cjp2600/bim-core)

Версионная миграция структуры БД для **[1С Битрикс CMS](http://bitrix.ru)**

- [Установка](#install)
    - [Автоматическая установка](#auto)
    - [Ручная установка](#hand)
- [Настройка](#prop)
- [Выполнение - bim up](#up)
- [Отмена - bim down](#down)
- [Вывод списка - bim ls](#ls)
- [Создание - bim gen](#gen)
    - [Создание пустой миграции](#gen_empty)
    - [Создание миграционного кода по наличию](#gen_nal)
        - Модуль (iblock,highloadblock)
        - [IblockType](#iblocktype)
        - [Iblock](#iblock)
        - [IblockProperty](#iblockproperty)
        - [Highloadblock](#hlblock)
        - [HighloadblockField](#hlblockfield)
        - Модуль (main)
        - [Group](#main_group)
        - [Site](#main_site)
    - [Режим multi - bim gen multi](#multi)
    - [Тегирование миграций](#tag)
    - [Логирование](#logging)
- [Информация о проекте - bim info](#info)

1 Установка
==============================================

[](#1-установка)

### 1.1 Автоматическая установка

[](#11-автоматическая-установка)

Для установки и инициализации bim для bitrix проекта необходимо выполнить следующиие действия из корня проекта:

- Установить Composer:

```
curl -s https://getcomposer.org/installer | php

```

- Выполнить установочный скрипт:

```
php -r "readfile('https://raw.githubusercontent.com/cjp2600/bim/master/install');" | php
```

> Автоматические действия установщика:

> 1. Добавление файла bim в корень проекта.
> 2. Инициализация **composer autoloader** в файле **init.php**
> 3. Создание файла **composer.json** в корне проекта со ссылкой на bim репозиторий **"require": { "koreychenko/bim-core": "&gt;=1.2.0"}**

### 1.2 Ручная установка

[](#12-ручная-установка)

Для ручной установки 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 Настройка
===========================================

[](#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\]
==============================================================

[](#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\]
=========================================================================

[](#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\]
================================================================

[](#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\]
====================================================================

[](#6-создание-новых-миграций-bim-gen)

Существует два способа создания миграций:

1) Создание пустой миграции:
-----------------------------------------------------------------

[](#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) Создание миграционного кода по наличию:
-----------------------------------------------------------------------------

[](#2-создание-миграционного-кода-по-наличию)

Создается код развертывания/отката существующего элемента схемы bitrix БД. На данный момент доступно генерация по наличию для следующих элементов bitrix БД:

### 2.1 IblockType *( php bim gen IblockType:\[add|delete\] )*:

[](#21-iblocktype--php-bim-gen-iblocktypeadddelete-)

Создается Миграционный код "**Типа ИБ**" включая созданные для него *(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\] )*:

[](#22-iblock--php-bim-gen-iblockadddelete-)

Создается Миграционный код "**ИБ**" включая созданные для него *(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\] )*:

[](#23-iblockproperty--php-bim-gen-iblockpropertyadddelete-)

Создается Миграционный код "**Свойства ИБ**"

Дополнительно запрашивается:

- \[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\] )*:

[](#24-hlblock--php-bim-gen-hlblockadddelete-)

Создается Миграционный код "**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\] )*:

[](#25-hlblockfield--php-bim-gen-hlblockfieldadddelete-)

Создается Миграционный код "**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\] )*:

[](#26-group--php-bim-gen-groupadddelete-)

Создается Миграционный код "**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\] )*:

[](#27-site--php-bim-gen-siteadddelete-)

Создается Миграционный код "**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\]:
----------------------------------------------------------------

[](#-режим-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\]
===================================================================

[](#7-информация-о-проекет-bim-info)

Информация о текущем bitrix проекте:

- Название проекта
- Версия bitrix
- Редакция bitrix

**Пример:**

```
php bim info
```

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 95.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~78 days

Recently: every ~189 days

Total

22

Last Release

2470d ago

Major Versions

0.0.1 → 1.0.02015-02-25

1.1.1 → v2.x-dev2016-03-22

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2026421?v=4)[Max Koreychenko](/maintainers/koreychenko)[@Koreychenko](https://github.com/Koreychenko)

---

Top Contributors

[![cjp2600](https://avatars.githubusercontent.com/u/1980974?v=4)](https://github.com/cjp2600 "cjp2600 (271 commits)")[![MustD](https://avatars.githubusercontent.com/u/3086970?v=4)](https://github.com/MustD "MustD (4 commits)")[![korusdev](https://avatars.githubusercontent.com/u/51703141?v=4)](https://github.com/korusdev "korusdev (3 commits)")[![SidyakinAV](https://avatars.githubusercontent.com/u/12892365?v=4)](https://github.com/SidyakinAV "SidyakinAV (2 commits)")[![Koreychenko](https://avatars.githubusercontent.com/u/2026421?v=4)](https://github.com/Koreychenko "Koreychenko (1 commits)")[![bitdeli-chef](https://avatars.githubusercontent.com/u/3092978?v=4)](https://github.com/bitdeli-chef "bitdeli-chef (1 commits)")[![andreyryabin](https://avatars.githubusercontent.com/u/5873964?v=4)](https://github.com/andreyryabin "andreyryabin (1 commits)")

---

Tags

migrationbitrixdb

### Embed Badge

![Health badge](/badges/koreychenko-bim-core/health.svg)

```
[![Health](https://phpackages.com/badges/koreychenko-bim-core/health.svg)](https://phpackages.com/packages/koreychenko-bim-core)
```

###  Alternatives

[rector/rector

Instant Upgrade and Automated Refactoring of any PHP code

10.3k123.1M6.0k](/packages/rector-rector)[robmorgan/phinx

Phinx makes it ridiculously easy to manage the database migrations for your PHP app.

4.5k46.2M405](/packages/robmorgan-phinx)[cjp2600/bim-core

Bitrix db migration core libs

558.8k1](/packages/cjp2600-bim-core)[andreyryabin/sprint.migration

bitrix migration module

205195.8k2](/packages/andreyryabin-sprintmigration)[cybercog/laravel-clickhouse

ClickHouse migrations for Laravel

163166.8k](/packages/cybercog-laravel-clickhouse)[dbout/wp-orm

WordPress ORM with Eloquent.

1279.6k1](/packages/dbout-wp-orm)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
