1

Symfony 2.2.3 アプリケーションのインストール バンドルを作成しようとしています。したがって、データベース(mysql)をドロップ/作成してから、コントローラーアクションを介してスキーマを作成したいと考えています。

私のコード:

$kernel = $this->get('kernel');
$application = new \Symfony\Bundle\FrameworkBundle\Console\Application($kernel);
$application->setAutoExit(false);

// drop old database
$options = array('command' => 'doctrine:database:drop', '--force' => true);
$application->run(new \Symfony\Component\Console\Input\ArrayInput($options));

// create new database
$options = array('command' => 'doctrine:database:create');
$result = $application->run(new \Symfony\Component\Console\Input\ArrayInput($options));

// check if database:create was successful, then create schema
if($result == 0) {
    $options = array('command' => 'doctrine:schema:create');
    $result = $application->run(new \Symfony\Component\Console\Input\ArrayInput($options));
}

database:drop と database:create は正常に動作しますが (どちらのコマンドも 0 を返します)、スキーマの作成は失敗します。

ただし、最初の 2 つのコマンドをコメントアウトして doctrine:schema:create のみが実行されるように (もちろん句が削除された場合)、他に何も変更せずにページをリロードすると、データベース スキーマが適切に作成されます。

誰が問題が何であるか教えてもらえますか?

4

1 に答える 1