如何在没有交互的情况下运行 doctrine 2 迁移命令行?

如何在没有交互的情况下运行原则 2 迁移命令?

目前,我有以下命令,它在我的单元测试的设置上运行。但它总是提示“是/否”用户输入,即使我使用 --no-interaction 选项也是如此。

$input = new Symfony\Components\Console\Input\ArrayInput(
        array(
            'migrations:migrate',
            '--configuration' => APPLICATION_PATH . '/../doctrine/migrations.xml',
            '--no-interaction',
            )
        );
$cli->run($input);

答案 1

我只是偶然发现了你的帖子,因为我遇到了同样的问题。教义迁移似乎同时更新(我猜:https://github.com/doctrine/migrations/commit/5b2751f149bc38d38870578f753c2193eb36e742)。

因此

 php app/console --no-interaction doctrine:migrations:migrate

现在工作正常。


答案 2

我不喜欢汤姆的方法,还有另一种方法可以做到这一点:

<?php
$input = new Symfony\Components\Console\Input\ArrayInput(
    array(
        'migrations:migrate',
        '--configuration' => APPLICATION_PATH . '/../doctrine/migrations.xml',
    )
);
$input->setInteractive(false);
?>

推荐