bluepsyduck/container-interop-doctrine-migrations

此包已被废弃,不再维护。作者建议使用 roave/psr-container-doctrine 包。

是 dasprid/container-interop-doctrine 的扩展,以支持迁移。

1.0.0 2019-10-11 14:55 UTC

This package is auto-updated.

Last update: 2020-11-11 09:45:53 UTC


README

GitHub release (latest SemVer) GitHub Codecov

已弃用:使用包 roave/psr-container-doctrine 代替。

roave/psr-container-doctrine 通过添加 Doctrine Migrations 替换了 dasprid/container-interop-doctrine,使此包变得过时。

此库是 dasprid/container-interop-doctrine 的扩展,以支持 Doctrine Migrations。

配置

使用以下值扩展您的 Doctrine 配置

<?php

use BluePsyduck\ContainerInteropDoctrineMigrations\MigrationsConfigurationFactory;

return [
    'dependencies' => [
        'factories' => [
            'doctrine.migrations.orm_default' => MigrationsConfigurationFactory::class,
        ],
    ],
    
    'doctrine' => [
        'migrations_configuration' => [
            'orm_default' => [
                'directory' => __DIR__ . '/../../data/database/migrations',
                'name'      => 'Fancy Service Database Migrations',
                'namespace' => 'FancyService\Migrations',
                'table'     => '_Migrations',
            ],
        ],
    ],
];

将以下内容放入文件 config/cli-config.php 中以使用 Doctrine CLI 工具

<?php

declare(strict_types=1);

namespace BluePsyduck\FancyService;

use Doctrine\DBAL\Migrations\Tools\Console\Helper\ConfigurationHelper;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper;
use Psr\Container\ContainerInterface;
use Symfony\Component\Console\Helper\HelperSet;
use Symfony\Component\Console\Helper\QuestionHelper;

/* @var ContainerInterface $container */
$container = require(__DIR__  . '/container.php');
/* @var EntityManager $entityManager */
$entityManager = $container->get(EntityManager::class);

return new HelperSet([
    'em' => new EntityManagerHelper($entityManager),
    'question' => new QuestionHelper(),
    'configuration' => new ConfigurationHelper(
        $entityManager->getConnection(),
        $container->get('doctrine.migrations.orm_default')
    ),
]);

从现在起,您可以通过调用它们的脚本来使用 Doctrine CLI 工具,例如

  • vendor/bin/doctrine-migrations migrations:status