PHPackages                             rulybka/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. rulybka/bitrix-migrations

ActiveLibrary

rulybka/bitrix-migrations
=========================

Database migrations for Bitrix CMS

2.8.4(3y ago)31.5kMITPHPPHP &gt;=5.5.0

Since Oct 4Pushed 3y agoCompare

[ Source](https://github.com/rulybka/bitrix-migrations)[ Packagist](https://packagist.org/packages/rulybka/bitrix-migrations)[ Docs](https://github.com/rulybka/bitrix-migrations)[ RSS](/packages/rulybka-bitrix-migrations/feed)WikiDiscussions master Synced today

READMEChangelog (3)Dependencies (4)Versions (32)Used By (0)

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

[](#bitrix-migrations)

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

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

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

1. `composer require rulybka/bitrix-migrations`
2. `cp vendor/rulybka/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` `element\_add` Добавление элемента в раздел инфоблока  `section\_add` Добавление раздела в инфоблок инфоблока  `hlb\_element\_add` Добавление элемента в сущность хайлоада  `event\_add` Добавление почтового события  `event\_msg\_add` Добавление шаблона почтового события  `group\_add` Создание группы пользователей 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('Тут текст ошибки');`Ни сама миграция, ни последующие при этом применены не будут.

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~92 days

Recently: every ~137 days

Total

30

Last Release

1199d 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/64529df73cbabbc94604cec777fcb858a93bb6a587b96df003cd6d473fe94b11?d=identicon)[rulybka](/maintainers/rulybka)

---

Top Contributors

[![arrilot](https://avatars.githubusercontent.com/u/2826480?v=4)](https://github.com/arrilot "arrilot (14 commits)")[![rulybka](https://avatars.githubusercontent.com/u/87199126?v=4)](https://github.com/rulybka "rulybka (6 commits)")[![AstasJr](https://avatars.githubusercontent.com/u/18006796?v=4)](https://github.com/AstasJr "AstasJr (6 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)")[![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)")[![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)")

---

Tags

bitrixmigrations

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/rulybka-bitrix-migrations/health.svg)

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

###  Alternatives

[robmorgan/phinx

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

4.5k46.2M405](/packages/robmorgan-phinx)[doctrine/migrations

PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying changes to it. It is a very easy to use and a powerful tool.

4.8k204.8M440](/packages/doctrine-migrations)[doctrine/doctrine-migrations-bundle

Symfony DoctrineMigrationsBundle

4.3k177.9M535](/packages/doctrine-doctrine-migrations-bundle)[davedevelopment/phpmig

Simple migrations system for php

5782.3M17](/packages/davedevelopment-phpmig)[lulco/phoenix

Database Migrations for PHP

180329.4k4](/packages/lulco-phoenix)[yiisoft/yii-cycle

Cycle ORM v2 support

47115.1k](/packages/yiisoft-yii-cycle)

PHPackages © 2026

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