claroline/migration-bundle

Claroline 迁移包

6.0.4 2016-02-15 09:38 UTC

This package is auto-updated.

Last update: 2024-09-13 21:15:45 UTC


README

警告

开发已迁移至 claroline/Distribution。本仓库将不再维护。

提供 Doctrine 迁移集成包

  • 基于包生成迁移类
  • 支持多目标平台生成
  • API 允许程序化执行迁移

Build Status

安装

使用 composer 安装包

composer require claroline/migration-bundle

然后将包添加到您的应用程序内核

// app/AppKernel.php
<?php

use Symfony\Component\HttpKernel\Kernel;

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Claroline\MigrationBundle\ClarolineMigrationBundle(),
        );
    }

    // ...
}

命令

您可以使用以下命令为特定包生成迁移

php app/console claroline:migration:generate AcmeFooBundle

此命令将在包的 迁移 目录中创建所有可用平台的迁移类。

您可以使用以下命令之一执行迁移

php app/console claroline:migration:upgrade AcmeFooBundle
php app/console claroline:migration:downgrade AcmeFooBundle

默认情况下,这两个命令将执行与当前/已安装版本最近的迁移版本,但您可以使用 --target 选项指定另一个目标

php app/console claroline:migration:downgrade AcmeFooBundle --target=20130101124512
php app/console claroline:migration:upgrade AcmeFooBundle --target=nearest
php app/console claroline:migration:upgrade AcmeFooBundle --target=farthest

其中 最远的 表示完整升级/降级。

以下命令显示包的可用版本列表,并突出显示当前/已安装版本

php app/console claroline:migration:version AcmeFooBundle

最后,您可以使用以下命令删除生成高于包当前版本的迁移类

php app/console claroline:migration:discard AcmeFooBundle

此最后一个命令在您打算将开发期间生成的多个迁移类“合并”为单个迁移类时非常有用。在这种情况下,应遵循以下步骤

# downgrading to the newest version you want to keep
php app/console claroline:migration:downgrade AcmeFooBundle --target=20130101124512
# deleting everything above that version
php app/console claroline:migration:discard AcmeFooBundle
# generating a new migration class
php app/console claroline:migration:generate AcmeFooBundle

API

整个 API 通过迁移 管理器类 访问

<?php

$bundle = $container->get('kernel')->getBundle('AcmeFooBundle');
$container->get('claroline.migration.manager')->upgradeBundle($bundle, '20131201134501');