PHPackages                             karpenko-na-fork/bitrix-migrations - 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. karpenko-na-fork/bitrix-migrations

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

karpenko-na-fork/bitrix-migrations
==================================

Database migrations for Bitrix CMS

2.6.6(4y ago)024MITPHPPHP &gt;=5.5.0

Since Oct 4Pushed 4y agoCompare

[ Source](https://github.com/karpenko-na-fork/bitrix-migrations)[ Packagist](https://packagist.org/packages/karpenko-na-fork/bitrix-migrations)[ Docs](https://github.com/karpenko-na-fork/bitrix-migrations)[ RSS](/packages/karpenko-na-fork-bitrix-migrations/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (4)Versions (28)Used By (0)

[![Latest Stable Version](https://camo.githubusercontent.com/0a32fd57058b8a78664dfa94bcdeb894896af3317a897bd5cdaeda5858ab3b22/68747470733a2f2f706f7365722e707567782e6f72672f6b617270656e6b6f2d6e612d666f726b2f6269747269782d6d6967726174696f6e732f762f737461626c652e737667)](https://packagist.org/packages/karpenko-na-fork/bitrix-migrations/)[![Total Downloads](https://camo.githubusercontent.com/51b1fcba98bc267f47527e23ddb69c8bc6d3f135b9714680d67d292df10e90c1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6b617270656e6b6f2d6e612d666f726b2f6269747269782d6d6967726174696f6e732e7376673f7374796c653d666c6174)](https://packagist.org/packages/karpenko-na-fork/bitrix-migrations)[![Build Status](https://camo.githubusercontent.com/17060b256ee9636767a847268d198709bb396f1942504ff152a1e6a7c019ac77/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6769746875622f6b617270656e6b6f2d6e612d666f726b2f6269747269782d6d6967726174696f6e732f6d61737465722e7376673f7374796c653d666c6174)](https://travis-ci.org/github/karpenko-na-fork/bitrix-migrations)[![Scrutinizer Quality Score](https://camo.githubusercontent.com/b8b713a173955237652558c6932e6c694e1633e449c94773149ce4c0ea550a23/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6b617270656e6b6f2d6e612d666f726b2f6269747269782d6d6967726174696f6e732f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/karpenko-na-fork/bitrix-migrations/)

Bitrix-migrations
=================

[](#bitrix-migrations)

*Миграции БД для Битрикса и не только*

Установка
---------

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

1. `composer require arrilot/bitrix-migrations`
2. `cp vendor/arrilot/bitrix-migrations/migrator migrator` - копируем исполняемый файл в удобное место.
3. заходим внутрь и удостоверяемся что задается правильный $\_SERVER\['DOCUMENT\_ROOT'\]. Меняем настройки если нужно
4. `php migrator install`

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

По умолчанию:

1. Таблица называется migrations.
2. `composer.json` и `migrator` лежат в корне сайта.
3. Файлы миграций будут создаваться в директории `./migrations` относительно скопированного на этапе 2 файла.

При необходимости всё это можно изменить в скопированном файле `migrator`.

- Крайне рекомендуется сделать `migrator` и `./migrations` недоступными по http через веб-сервер. \*

Использование
-------------

[](#использование)

### Рабочий процесс

[](#рабочий-процесс)

Рабочий процесс происходит через консоль и кратко описывается примерно так:

1. Создаем файл (или файлы) миграции при помощи `php migrator make название_миграции`

Файл миграции представляет из себя класс с двумя методами `up()` и `down()`

2. Реализуем в методе `up()`необходимые изменения в БД. При желании в методе `down()` реализуем откат этих измнений
3. Применяем имеющиеся миграции - `php migrator migrate`
4. Вносим файлы миграций в систему контроля версий, чтобы их можно было запустить и на других машинах

### Доступные команды

[](#доступные-команды)

Список доступных команд можно получить в консоли - `php migrator list`

НазваниеОписание `php migrator install` Создает таблицу для хранения миграций. Запускается один раз. `php migrator make название\_миграции`  Создает файл миграции Опции:
 `-d foo/bar` - указать поддиректорию, в которой будет создана миграция
  `php migrator migrate` Применяет все доступные для применения миграции. Миграции примененные ранее не применяются. `php migrator rollback`  Откатывает последнюю миграцию (метод `down()`). После этого её можно применить повторно.
 Опции:
 `--hard` - выполнить жесткий откат без вызова метода `down()`
 `--delete` - удалить файл с миграцией после отката.
  `php migrator templates` Показывает подробную таблицу со всем существующими шаблонами миграций `php migrator status` Показывает доступные для выполнения миграции, а также последние выполненные. `php migrator archive`  Переносит все миграции в архив. По умолчанию это директория archive, но можно переопределить в конфиге, указав "dir\_archive"
 Опции:
 `-w 10` - не переносить в архив последние N миграций
 ### Шаблоны миграций

[](#шаблоны-миграций)

Так как изменение структуры БД битрикса через его АПИ - занятие крайне малоприятное, то для облегчения этого процесса есть механизм шаблонов миграций, работающий следущим образом: При генерации файла миграции можно указать его шаблон: `php migrator make название_миграции -t add_iblock` где `add_block` - название шаблона. При этом сгенерируется класс с бойлерплейтом из шаблона и остается лишь указать детали (например название и код инфоблока) Свои шаблоны миграций можно добавить напрямую в файле `migrator` при помощи `TemplateCollection::registerTemplate()`

Имеющиеся шаблоны:

НазваниеОписаниеАлиасы `default` Чистый шаблон по умолчанию  `add\_iblock\_type` Добавление типа инфоблока  `add\_iblock` Добавление инфоблока  `add\_iblock\_element\_property` Добавление свойства в инфоблок `add\_iblock\_prop`, `add\_iblock\_element\_prop`, `add\_element\_prop`, `add\_element\_property` `add\_uf` Добавление UF свойства  `query` Произвольный запрос в БД через АПИ d7  `add\_table` Создание таблицы через АПИ d7 `create\_table` `delete\_table` Удаление таблицы через АПИ d7 `drop\_table`6. `php migrator status` - показывает доступные для выполнения миграции, а также последние выполненные.

### Автоматическое создание миграций

[](#автоматическое-создание-миграций)

Еще одна киллер-фича - режим автоматического создания миграций. Для его включения необходимо добавить примерно следующее в `init.php`

```
Arrilot\BitrixMigrations\Autocreate\Manager::init($_SERVER["DOCUMENT_ROOT"].'/migrations');
```

В метод `Manager::init()` передается путь до директории аналогичной конфигу в файле `migrator`.

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

1. Срабатывает битриксовый обработчик события
2. Создается файл миграции как при `php migrator make`
3. Миграция помечается примененной
4. Показывается нотификация о предыдущих пунктах

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

Список обрабатываемых событий:

СобытиеКомментарии Добавление инфоблока  Обновление базовых полей инфоблока Из-за специфики работы админки битрикса эта миграция зачастую создается когда не нужно, допустим при добавлении кастомного свойства в инфоблок. Ничего смертельного, но надо смириться. Удаление инфоблока  Добавление кастомного свойства в инфоблок  Обновление кастомного свойства инфоблока Миграция создается только если какой-либо из атрибутов свойства был изменён Удаление кастомного свойства инфоблока  Добавление UF свойства куда-либо (раздел ИБ, пользователь, хайлоадблок) К сожалению Битрикс не даёт возможности отслеживать изменение такого свойства - только добавление и удаление Удаление UF свойства  Добавление хайлоадблока  Изменение хайлоадблока Миграция создается только если какой-либо из атрибутов хайлоадблока был изменён Удаление хайлоадблока  Добавление группы пользователей  Изменение группы пользователей  Удаление группы пользователей - Миграции используют события `OnBefore...`. Если при вашем изменении произошла ошибка (допустим не указана привязка к сайту при добавлении инфоблока) и было показано уведомление о том что миграция создана, необходимо вручную откатить такую миграцию при помощи `php migrator rollback --hard --delete` \*

### Обработка ошибок миграций

[](#обработка-ошибок-миграций)

Для отмены миграции в момент её выполнения достаточно выкинуть исключение - `php throw new MigrationException('Тут текст ошибки');`Ни сама миграция, ни последующие при этом применены не будут.

Использование вне Битрикс
-------------------------

[](#использование-вне-битрикс)

Пакет создан для использования совместно с Битриксом, однако его довольно просто можно использовать и в других системах. Для этого нужно в файле `migrator`:

1. Заменить подключение ядра Битрикса на ядро другой системы.
2. Реализовать свой аналог ` Arrilot\BitrixMigrations\Repositories\BitrixDatabaseRepository;` и использовать его.
3. По желанию отключить существующие шаблоны миграций, сделав свои.

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 52% 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 ~87 days

Recently: every ~190 days

Total

27

Last Release

1652d ago

Major Versions

1.0.2 → 2.0.02015-10-30

1.1.0 → 2.1.02016-06-04

PHP version history (2 changes)1.0.0PHP &gt;=5.4.0

2.2.0PHP &gt;=5.5.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/157b7401e7e754c55a28637251837a7ca39eadbd55abe37f352e1999bb70ccbf?d=identicon)[karpenko-na](/maintainers/karpenko-na)

---

Top Contributors

[![arrilot](https://avatars.githubusercontent.com/u/2826480?v=4)](https://github.com/arrilot "arrilot (13 commits)")[![MsNatali](https://avatars.githubusercontent.com/u/8089373?v=4)](https://github.com/MsNatali "MsNatali (4 commits)")[![viktorprogger](https://avatars.githubusercontent.com/u/7670669?v=4)](https://github.com/viktorprogger "viktorprogger (3 commits)")[![olegpro](https://avatars.githubusercontent.com/u/1092443?v=4)](https://github.com/olegpro "olegpro (1 commits)")[![vadileo](https://avatars.githubusercontent.com/u/51167100?v=4)](https://github.com/vadileo "vadileo (1 commits)")[![vkryukov76](https://avatars.githubusercontent.com/u/944188?v=4)](https://github.com/vkryukov76 "vkryukov76 (1 commits)")[![azatnizam](https://avatars.githubusercontent.com/u/18191907?v=4)](https://github.com/azatnizam "azatnizam (1 commits)")[![informunity](https://avatars.githubusercontent.com/u/35919350?v=4)](https://github.com/informunity "informunity (1 commits)")

---

Tags

bitrixmigrations

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/karpenko-na-fork-bitrix-migrations/health.svg)

```
[![Health](https://phpackages.com/badges/karpenko-na-fork-bitrix-migrations/health.svg)](https://phpackages.com/packages/karpenko-na-fork-bitrix-migrations)
```

PHPackages © 2026

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