rey / migration
基于 Doctrine 迁移组件的 Bitrix 迁移
dev-master
2016-10-10 07:50 UTC
Requires
- php: >=5.3.0
- doctrine/migrations: 1.0.*@dev
This package is not auto-updated.
Last update: 2024-09-28 17:54:36 UTC
README
基于 Doctrine 迁移组件的 Bitrix 迁移
安装
Composer
$ php composer.phar require rey/migration dev-master
使用
创建文件 bin/console
#!/usr/bin/env php <?php use Symfony\Component\Console\Application; use Doctrine\Common\Annotations\AnnotationRegistry; use Rey\BitrixMigrations\Configuration; use Rey\BitrixMigrations\MigrationManager; //указать путь до проекта $_SERVER['DOCUMENT_ROOT'] = __DIR__.'/../htdocs/'; $loader = require __DIR__.'/../vendor/autoload.php'; AnnotationRegistry::registerLoader(array($loader, 'loadClass')); $console = new Application('console'); $config = new Configuration(); $config->setConnectionParameters( array( 'dbname' => 'mydatabase', 'user' => 'root', 'password' => '', 'host' => '127.0.0.1', 'driver' => 'pdo_mysql', ) ); $config->setMigrationsParameters( array( 'migrations_directory' => __DIR__.'/../migration', ) ); $bitrixMigrationManager = new MigrationManager($console, $config); $bitrixMigrationManager->init(); $console->run();
然后在控制台运行
$ php bin/console
要生成新的迁移,执行以下命令:
$ php bin/console bitrix:migrations:generate
将在 %migrations_directory 目录下生成一个空的迁移文件。
默认迁移类继承自 Rey\BitrixMigrations\AbstractMigration(可以在 MigrationsParameters 中通过 %abstract_class 参数进行覆盖)。
要使用 Bitrix API,只需调用 $this->enableBitrixAPI(); 方法。
public function up(Schema $schema) { $this->enableBitrixAPI(); ...
要执行单个迁移,执行以下命令:
$ php bin/console bitrix:migrations:execute %номер_миграции% --up
要回滚,执行带有 --down 选项的命令。
$ php bin/console bitrix:migrations:execute %номер_миграции% --down
要执行所有未应用的迁移,执行以下命令:
$ php bin/console bitrix:migrations:migrate
要查看迁移状态,执行以下命令:
$ php bin/console bitrix:migrations:status
要获取每个迁移的详细信息,使用 --show-versions 选项。
$ php bin/console bitrix:migrations:status --show-versions
MySql Lite 驱动器
当使用 MySql 时,为了提高效率,可以使用“简化版”驱动器。将参数 driver 替换为 driverClass。
$config->setConnectionParameters( array( ... 'driverClass' => new \Rey\BitrixMigrations\Driver\PDOMySql\LiteDriver(), ) );