claroline / migration-bundle
Claroline 迁移包
6.0.4
2016-02-15 09:38 UTC
Requires
- php: >=5.5
- claroline/kernel-bundle: ~6.0
- doctrine/migrations: ~1.3
- doctrine/orm: ~2.2
- jdorn/sql-formatter: ~1.0
- psr/log: ~1.0
- symfony/console: ~2.0
- symfony/framework-bundle: *
- symfony/twig-bridge: ~2.0
- symfony/twig-bundle: ~2.0
Requires (Dev)
- mikey179/vfsstream: dev-master
- mockery/mockery: dev-master@dev
README
警告
开发已迁移至 claroline/Distribution。本仓库将不再维护。
提供 Doctrine 迁移集成包
- 基于包生成迁移类
- 支持多目标平台生成
- API 允许程序化执行迁移
安装
使用 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');