rey/migration

基于 Doctrine 迁移组件的 Bitrix 迁移

dev-master 2016-10-10 07:50 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:54:36 UTC


README

基于 Doctrine 迁移组件的 Bitrix 迁移

Scrutinizer Code Quality Join the chat at https://gitter.im/Olegator8800/ReyMigration

安装

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(),
                            )
                        );