proklung/wp.migrations

Adapting Arrilot database migrations for Wordpress.

1.0.5 2021-08-07 20:03 UTC

This package is auto-updated.

Last update: 2024-11-08 03:03:29 UTC


README

Оригинальный пакет - https://github.com/arrilot/bitrix-migrations

Установка

  1. composer require proklung/wp.migrations

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

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

  4. php migrator install

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

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

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

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

  3. Файлы миграций будут создаваться в директории ./app/arrilot_migrations относительно корня сайта.

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

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

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

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

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

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

  1. Реализуем в методе up()необходимые изменения в БД. При желании в методе down() реализуем откат этих измнений

  2. Применяем имеющиеся миграции - php migrator migrate

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

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

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

Шаблоны миграций

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

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

  1. php migrator status - показывает доступные для выполнения миграции, а также последние выполненные.