10

このコマンドを使わずにdoctrineにスキーマテーブルを自動的に作成させる方法はありますか?

doctrine:schema:update --force
4

2 に答える 2

26

SchemaToolとEntityManagerを使用すると、次のことができます。

$schemaTool = new \Doctrine\ORM\Tools\SchemaTool($entityManager);
$classes = $entityManager->getMetadataFactory()->getAllMetadata();
$schemaTool->createSchema($classes);
于 2012-09-07T22:23:30.473 に答える
4

何をしたいのかよくわかりませんが、phpコードからやりたい場合は、doctrineコマンドがどのように機能するかを確認して、コードをコピーできます。ここで見つけることができます:

vendor/symfony/src/Symfony/Bundle/DoctrineBundle/Command/CreateDatabaseDoctrineCommand.php

execute メソッドを確認すると、どのように実行されるかがわかります。どうやら、DBAL DriverManager を介して接続を取得する必要があるようです。これにより、createDatabase メソッドを持つスキーマ オブジェクトにアクセスできるようになります。私はこれを自分で試していません。

于 2012-05-20T19:03:37.947 に答える