2

私はテストファイルにいて、いくつかの symfony コマンド、つまりデータベース、ドロップ、それに続く create i create schema を起動したいと考えています:

public function runCommand(Client $client, $command)
{
    $application = new Application($client->getKernel());
    $application->setAutoExit(false);

    $fp = tmpfile();
    $input = new StringInput($command);
    $output = new StreamOutput($fp);

    $application->run($input, $output);

    fseek($fp, 0);
    $output = '';
    while (!feof($fp)) {
        $output = fread($fp, 4096);
    }
    fclose($fp);

    return $output;
}

public function cleanDataBaseTest() {

    $client = self::createClient();        

    $command_drop_database = $this->runCommand($client, 'doctrine:database:drop --env=test --force');

    $command_create_database = $this->runCommand($client, 'doctrine:database:create --env=test');

    $command_create_schema = $this->runCommand($client, 'doctrine:schema:create --dump-sql');

    echo $command_create_schema;
  /*
    ALTER TABLE.....

*/

}

または、echo $ command_create_schema を実行すると、テーブルのみが変更されます。

    C6 FOREIGN KEY (akey) REFERENCES atable (id);
ALTER TABLE atablea ADD CONSTRAINT FK_646DFFB72576E0FD FOREIGN KEY (anid) REFERENCES ....

したがって、コマンドを実行している場合: php app / console doctrine: schema: create - dump-sql 作成および変更テーブルを取得します

なぜなのかご存知ですか ?

4

0 に答える 0