我有两个不同的数据库连接的设置,这也意味着两个不同的实体管理器。我正在尝试创建一个 Symfony CLI 命令,该doctrine:migrations:migrate命令使用--em,--configuration和--no-interaction选项调用该命令。然而,尽管有--no-interaction和$input->setInteractive(false),我仍然会收到确认提示。
看一下代码:
protected function execute(InputInterface $input, OutputInterface $output) {
$input->setInteractive(false);
// some other code here
$command = $this->getApplication()->find('doctrine:migrations:migrate');
$arguments = array(
'command' => 'doctrine:migrations:migrate',
'version' => $version,
'--em' => $em,
'--configuration' => self::CONFIG_FILES[$em],
'--no-interaction' => true
);
$migrationInput = new ArrayInput($arguments);
$command->run($migrationInput, $output);
}
Run Code Online (Sandbox Code Playgroud)
我几乎尝试了所有想到的东西。我看不到任何--no-interaction不能与从另一个命令调用的命令一起工作的地方。每次运行该命令时,我都会得到以下信息:
WARNING! You are about to execute a database migration that could result in schema changes
and data lost. …Run Code Online (Sandbox Code Playgroud)