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
- Host: GitHub
- URL: https://github.com/proklung/wp.migrations
- Owner: ProklUng
- Created: 2021-04-19T06:52:52.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2021-08-07T20:04:26.000Z (over 3 years ago)
- Last Synced: 2024-12-25T21:24:11.976Z (4 months ago)
- Topics: database, migration, wordpress
- Language: PHP
- Homepage:
- Size: 38.1 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.MD
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` - показывает доступные для выполнения миграции, а также последние выполненные.