Download the PHP package magnifico/bitrix-phinx without Composer
On this page you can find all versions of the php package magnifico/bitrix-phinx. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package bitrix-phinx
bitrix-phinx
Как поставить
-
Ставим пакет через composer
-
Ставим симлинк с именем "magnifico.phinx" из директории bitrix'а на местоположение пакета, например:
-
Делаем то же самое для модуля "magnifico.console":
-
Устанавливаем оба модуля в админке битрикса
-
Создаем где-нибудь файл "manage.php":
- Пользуемся
Как работать с модулем
Никакого дополнительного конфигурирования (типа phinx.yml) - не требуется, все необходимые настройки считываются из ядра битрикса.
В отличие от оригинального phinx'а, у каждой команды первым обязательным аргументом добавлено имя модуля битрикса, к которому относятся миграции. Все остальные параметры остались без изменений.
Например, если наш модуль называется magnifico.site, команды будут выглядеть так:
Миграции при этом будут создаваться и искаться в директории "migrations", лежащей в директории соответствующего модуля, например:
Также, в отличие от оригинального phinx'а, в базе данных будет создана не одна таблица, а по таблице на каждый отдельный модуль по паттерну "magnifico_phinx_migrationsof{module_name}", например:
Применение миграций для нескольких модулей
php manage.php phinx:migrate magnifico.site1 magnifico.site2 magnifico.site3
Применение миграций для всех модулей
php manage.php phinx:migrate
При применении миграций для более чем одного модуля, миграции для каждого модуля запускаются в отдельном процессе. Это делается для того чтобы не возникло повторного объявления php класса в случае когда в разных модулях есть миграции с одинаковыми именами. Для запуска отдельного процесса используются следующие переменные окужения:
- php_bin - путь к исполняемому файлу php, по умолчанию
PHP_BINARY
- manager_file - путь к файлу manage.php, по умолчанию
realpath($_SERVER['argv'][0])
При необходимости вы можете задать эти переменные следующим образом.