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-04-08 01:43:15 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/bin migrator install` Создает таблицу для хранения миграций. Запускается один раз.
`php/bin migrator make название_миграции` Создает файл миграции Опции:
`-d foo/bar` - указать поддиректорию, в которой будет создана миграция
`php/bin migrator migrate` Применяет все доступные для применения миграции. Миграции примененные ранее не применяются.
`php/bin migrator rollback` Откатывает последнюю миграцию (метод `down()`). После этого её можно применить повторно.
Опции:
`--hard` - выполнить жесткий откат без вызова метода `down()`
`--delete` - удалить файл с миграцией после отката.
`php/bin migrator templates` Показывает подробную таблицу со всем существующими шаблонами миграций
`php/bin migrator status` Показывает доступные для выполнения миграции, а также последние выполненные.
`php/bin migrator archive` Переносит все миграции в архив. По умолчанию это директория /app/archive_migrations, но можно переопределить в конфиге, указав "dir_archive"
Опции:
`-w 10` - не переносить в архив последние N миграций

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

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

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

НазваниеОписаниеАлиасы
`default` Чистый шаблон по умолчанию
`query` Произвольный запрос в БД
`add_table` Создание таблицы через `create_table`
`delete_table` Удаление таблицы `drop_table`
  1. php migrator status - показывает доступные для выполнения миграции, а также последние выполненные.