10

有没有办法告诉学说在不使用此命令的情况下自动创建模式表:

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 代码中做,你可以检查教义命令的工作原理并复制代码。你可以在这里找到它:

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

如果您检查执行方法,您将看到它是如何完成的。显然,您需要通过 DBAL DriverManager 建立连接,这使您可以访问模式对象,该对象又具有 createDatabase 方法。我自己没有尝试过。

于 2012-05-20T19:03:37.947 回答