magnifico / bitrix-phinx
此包最新版本(v0.1.7)没有提供许可证信息。
v0.1.7
2018-07-13 08:04 UTC
Requires
- php: >=5.4
- magnifico/bitrix-console: ^0.1
- robmorgan/phinx: ^0.6
This package is not auto-updated.
Last update: 2024-09-28 11:11:16 UTC
README
如何安装
- 通过composer安装包
composer require magnifico/bitrix-phinx:^0.1
- 从bitrix目录中将名为"magnifico.phinx"的符号链接安装到包的位置,例如
cd /home/bitrix/www/bitrix/modules
ln -s ../../../vendor/magnifico/bitrix-phinx magnifico.phinx
- 同样为"magnifico.console"模块做相同操作
cd /home/bitrix/www/bitrix/modules
ln -s ../../../vendor/magnifico/bitrix-console magnifico.console
-
在bitrix的行政界面中安装这两个模块
-
创建一个名为"manage.php"的文件
<?php
# Определяем, где находится DOCUMENT_ROOT
$_SERVER['DOCUMENT_ROOT'] = '/home/bitrix/www';
# Включаем служебный скрипт из модуля magnifico.console
require_once $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/magnifico.console/manage.php';
- 使用
如何使用模块
无需额外配置(如phinx.yml),所有必要的设置都从bitrix内核读取。
与原始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');