An open API service indexing awesome lists of open source software.

https://github.com/proklung/wp.migrations

Adapting Arrilot migrations for Wordpress
https://github.com/proklung/wp.migrations

database migration wordpress

Last synced: 2 months ago
JSON representation

Adapting Arrilot migrations for Wordpress

Awesome Lists containing this project

README

        

# Адаптация миграций от Arrilot для Wordpress

Оригинальный пакет - [https://github.com/arrilot/bitrix-migrations](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()`

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

3) Применяем имеющиеся миграции - `php migrator migrate`

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

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

Список доступных команд можно получить в консоли - `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`

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