¿Cómo puedo hacerlo desde PHP, volver a crear mi base de datos, tal vez la inserción de datos predeterminados. Actualmente, tengo la intención de usar el comportamiento para Pruebas Unitarias.¿Cómo puedo en PHP volver a crear mi base de datos (para pruebas de unidades, por ejemplo)
estoy usando Doctrina 2, Zend Framework 1.11, Zend_Test
para pruebas unitarias
que podría utilizar la CLI
doctrine orm:schema-tool:update --force
O
doctrine orm:schema-tool:drop --force
doctrine orm:schema-tool:create
Busco a un reemplazo de PHP, hasta ahora encontrado this
pero se verá som ething like
$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);
Y realmente no quiero tener que especificar las clases de modelo, esp en el desarrollo cuando pueden cambiar. Solo debe leer todas las clases especificadas en ... a continuación ... al igual que con la CLI, ¿no necesita especificar las clases que desea?
$driverImpl = $config->newDefaultAnnotationDriver(array(realpath('../models')));
$config->setMetadataDriverImpl($driverImpl);
* (referencia) * [Capítulo en PHPUnit en las pruebas de la base de datos] (http://www.phpunit.de/manual/3.4/en/database.html) – Gordon
@Gordon, gracias, creo que esa será la manera correcta de unirse probar mis modelos, lo único que hay es una conexión PDO, ¿cómo puedo usar la conexión de Doctrine? Estoy usando [Doctrine 2] (http: //www.doctrine-project.org /) –
Básicamente estoy usando la misma configuración que usted, excepto que saco la lista de nombres de clases de una configuración, que es más fácil de mantener. Sin embargo, descubrí que llamar 'dropSchema()' y 'createSchema()' en cada prueba es * realmente * costoso, y un gran conjunto de pruebas tarda una eternidad en ejecutarse. El uso de accesorios PHPUnit es mucho más rápido. También tendré que verificar la extensión de Benjamin. –