proklung / wp.migrations
Adapting Arrilot database migrations for Wordpress.
Requires
- php: >=7.1 || ^8.0
- illuminate/support: ~5 | ~6 | ~7 | ~8
- symfony/console: ^4.4 || ^5.0
Requires (Dev)
README
Оригинальный пакет - https://github.com/arrilot/bitrix-migrations
Установка
-
composer require proklung/wp.migrations
-
cp vendor/proklung/wp-migrations/migrator bin/migrator
- копируем исполняемый файл в удобное место. -
заходим внутрь и удостоверяемся что задается правильный $_SERVER['DOCUMENT_ROOT']. Меняем настройки если нужно.
-
php migrator install
Данная команда создаст в БД таблицу для хранения названий выполненных миграций.
По умолчанию:
-
Таблица называется wp_arrilot_migrations.
-
composer.json
лежит в корне сайта,migrator
в /bin. -
Файлы миграций будут создаваться в директории
./app/arrilot_migrations
относительно корня сайта.
При необходимости всё это можно изменить в скопированном файле migrator
.
Использование
Рабочий процесс
Рабочий процесс происходит через консоль и кратко описывается примерно так:
- Создаем файл (или файлы) миграции при помощи
php migrator make название_миграции
Файл миграции представляет из себя класс с двумя методами up()
и down()
-
Реализуем в методе
up()
необходимые изменения в БД. При желании в методеdown()
реализуем откат этих измнений -
Применяем имеющиеся миграции -
php migrator migrate
-
Вносим файлы миграций в систему контроля версий, чтобы их можно было запустить и на других машинах
Доступные команды
Список доступных команд можно получить в консоли - php bin/migrator list
Шаблоны миграций
Так как изменение структуры БД битрикса через его АПИ - занятие крайне малоприятное, то для облегчения этого процесса есть механизм шаблонов миграций, работающий следущим образом:
При генерации файла миграции можно указать его шаблон: php migrator make название_миграции -t add_iblock
где add_block
- название шаблона.
При этом сгенерируется класс с бойлерплейтом из шаблона и остается лишь указать детали (например название и код инфоблока)
Свои шаблоны миграций можно добавить напрямую в файле migrator
при помощи TemplateCollection::registerTemplate()
Имеющиеся шаблоны:
php migrator status
- показывает доступные для выполнения миграции, а также последние выполненные.