Download the PHP package enjame/bitrix-migrations without Composer

On this page you can find all versions of the php package enjame/bitrix-migrations. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package bitrix-migrations

Latest Stable Version Total Downloads Build Status Scrutinizer Quality Score

Bitrix-migrations

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

Установка

1) composer require enjame/bitrix-migrations

2) cp vendor/enjame/bitrix-migrations/migrator migrator - копируем исполняемый файл в удобное место.

3) заходим внутрь и удостоверяемся что задается правильный $_SERVER['DOCUMENT_ROOT']. Меняем настройки если нужно

4) php migrator install

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

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

1) Таблица называется migrations.

2) composer.json и migrator лежат в корне сайта.

3) Файлы миграций будут создаваться в директории ./migrations относительно скопированного на этапе 2 файла.

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

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

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

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

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

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

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

1) Срабатывает битриксовый обработчик события

2) Создается файл миграции как при php migrator make

3) Миграция помечается примененной

4) Показывается нотификация о предыдущих пунктах

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

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

СобытиеКомментарии
Добавление инфоблока
Обновление базовых полей инфоблока Из-за специфики работы админки битрикса эта миграция зачастую создается когда не нужно, допустим при добавлении кастомного свойства в инфоблок. Ничего смертельного, но надо смириться.
Удаление инфоблока
Добавление кастомного свойства в инфоблок
Обновление кастомного свойства инфоблока Миграция создается только если какой-либо из атрибутов свойства был изменён
Удаление кастомного свойства инфоблока
Добавление UF свойства куда-либо (раздел ИБ, пользователь, хайлоадблок) К сожалению Битрикс не даёт возможности отслеживать изменение такого свойства - только добавление и удаление
Удаление UF свойства
Добавление хайлоадблока
Изменение хайлоадблока Миграция создается только если какой-либо из атрибутов хайлоадблока был изменён
Удаление хайлоадблока
Добавление группы пользователей
Изменение группы пользователей
Удаление группы пользователей

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

Для отмены миграции в момент её выполнения достаточно выкинуть исключение - Ни сама миграция, ни последующие при этом применены не будут.

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

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

1) Заменить подключение ядра Битрикса на ядро другой системы.

2) Реализовать свой аналог Arrilot\BitrixMigrations\Repositories\BitrixDatabaseRepository; и использовать его.

3) По желанию отключить существующие шаблоны миграций, сделав свои.


All versions of bitrix-migrations with dependencies

PHP Build Version
Package Version
Requires php Version >=5.5.0
symfony/console Version ~2|~3|~4
tightenco/collect Version 5.*
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package enjame/bitrix-migrations contains the following files

Loading the files please wait ....