有没有办法告诉doctrine自动创建模式表而不使用此命令:
doctrine:schema:update --force
答案 0 :(得分:23)
使用SchemaTool和EntityManager可以执行以下操作:
$schemaTool = new \Doctrine\ORM\Tools\SchemaTool($entityManager);
$classes = $entityManager->getMetadataFactory()->getAllMetadata();
$schemaTool->createSchema($classes);
答案 1 :(得分:4)
我不确定你想做什么,但是如果你想从php代码中做到这一点,你可以检查doctrine命令的工作原理并复制代码。你可以在这里找到它:
vendor/symfony/src/Symfony/Bundle/DoctrineBundle/Command/CreateDatabaseDoctrineCommand.php
如果检查执行方法,您将看到它是如何完成的。显然,您需要通过DBAL DriverManager获得连接,这样您就可以访问模式对象,而模式对象又具有createDatabase方法。我自己没试过。