magnifico/bitrix-phinx 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

magnifico/bitrix-phinx

Composer 安装命令:

composer require magnifico/bitrix-phinx

包简介

README 文档

README

Как поставить

  1. Ставим пакет через composer
composer require magnifico/bitrix-phinx:^0.1
  1. Ставим симлинк с именем "magnifico.phinx" из директории bitrix'а на местоположение пакета, например:
cd /home/bitrix/www/bitrix/modules
ln -s ../../../vendor/magnifico/bitrix-phinx magnifico.phinx
  1. Делаем то же самое для модуля "magnifico.console":
cd /home/bitrix/www/bitrix/modules
ln -s ../../../vendor/magnifico/bitrix-console magnifico.console
  1. Устанавливаем оба модуля в админке битрикса

  2. Создаем где-нибудь файл "manage.php":

<?php

# Определяем, где находится DOCUMENT_ROOT
$_SERVER['DOCUMENT_ROOT'] = '/home/bitrix/www';

# Включаем служебный скрипт из модуля magnifico.console
require_once $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/magnifico.console/manage.php';
  1. Пользуемся

Как работать с модулем

Никакого дополнительного конфигурирования (типа phinx.yml) - не требуется, все необходимые настройки считываются из ядра битрикса.

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

Например, если наш модуль называется magnifico.site, команды будут выглядеть так:

# Создать миграцию
php manage.php phinx:create magnifico.site MigrationName

# Применение миграций
php manage.php phinx:migrate magnifico.site

# Откат миграций
php manage.php phinx:rollback magnifico.site

# Информация о миграциях
php manage.php phinx:status magnifico.site

Миграции при этом будут создаваться и искаться в директории "migrations", лежащей в директории соответствующего модуля, например:

# Если используется local
/home/bitrix/www/local/modules/magnifico.site/migrations

# Так тоже будет работать
/home/bitrix/www/bitrix/modules/magnifico.site/migrations

Также, в отличие от оригинального phinx'а, в базе данных будет создана не одна таблица, а по таблице на каждый отдельный модуль по паттерну "magnifico_phinx_migrations_of_{module_name}", например:

magnifico_phinx_migrations_of_magnifico_site
magnifico_phinx_migrations_of_atlaslib_feedback

Применение миграций для нескольких модулей

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])

При необходимости вы можете задать эти переменные следующим образом.

\Bitrix\Main\Config\Option::set('magnifico.phinx', 'php_bin', '/bin/php');
\Bitrix\Main\Config\Option::set('magnifico.phinx', 'manager_file', '/app/www/manager.php');

统计信息

  • 总下载量: 120
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2017-10-30

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固