我如何从 PHP 重新创建我的数据库,也许插入默认数据。目前,我打算将该行为用于单元测试。
我正在使用 Doctrine 2、Zend Framework 1.11、Zend_Test
进行单元测试
我可以使用 CLI
doctrine orm:schema-tool:update --force
或者
doctrine orm:schema-tool:drop --force
doctrine orm:schema-tool:create
我正在寻找 PHP 替代品,目前已找到 this
但它看起来像
$tool = new \Doctrine\ORM\Tools\SchemaTool($em);
$classes = array(
$em->getClassMetadata('Entities\User'),
$em->getClassMetadata('Entities\Profile')
);
$tool->dropSchema($classes, \Doctrine\ORM\Tools\SchemaTool::DROP_DATABASE);
$tool->createSchema($classes);
而且我真的不想指定模型类,尤其是在开发中它们可以更改的时候。它应该只从...中指定的所有类中读取...就像使用 CLI 一样,您不需要指定所需的类?
$driverImpl = $config->newDefaultAnnotationDriver(array(realpath('../models')));
$config->setMetadataDriverImpl($driverImpl);
最佳答案
你可以使用
The PHPUnit Extension for Doctrine offers several hooks into PHPUnits Database extension and offers a very convenient way to test your Doctrine 2 code against a Database.
自述文件中有一些示例,包括一个演示如何即时创建数据库模式的示例。 Benjamin Eberlei 是 Doctrine 2 的核心贡献者。
另请参阅 B. Eberlei 的 Ultimate Guide to DB Testing with PHPUnit
关于php - 我如何在 PHP 中重新创建我的数据库(例如用于单元测试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4470126/