Crear entidades en Symfony 2 con Doctrine a partir de una BD ya creada

En Symfony 2 podemos definir los ORM y a partir de ellos generar de forma automática las clases de los modelos y todo el SQL para crear el esquema de la base de datos.
Pero si se quiere hacer a la inversa también se pueden crear los ORM y las clases de los modelos a partir de una base de datos ya creada. Y de forma automática. Eso sí, por favor, que el esquema de la BBDD esté bien creada!

Si seguimos los pasos de configuración de nuestro primer bundle, lo tendremos todo preparado para ejecutar lo siguiente en la consola de symfony y comenzar con la función. Y ese “todo” presupone que añadimos los datos de conexión correctos a una base de datos.

[code]
php  app/console doctrine:mapping:import “ProyectoMiBundle” yml
[/code]
Con esto se mapeará toda la base de datos y se guardarán los ORM en formato YAML. Se puede importar a formatos XML o PHP, pero el más legible es YAML.

Si no se cumple alguna regla de integridad referencial o el programa encuentra algún error, nos imprimirá bonitos errores rojos antes de hacer nada.

[code]php  app/console doctrine:generate:entities “ProyectoMiBundle”[/code]

Con los ORM creados Doctrine creará las entidades en un visto y no visto.

 

Aquí es cuando tu primera vez se te escapa un “jo-der”.

IMPORTANTE: Si tienes más de un servidor php instalado es conveniente indicar la ruta al php.ini adecuado. De no hacerlo puede que los comandos nos devuelvan errores. Usa la opción -c RutaDirectorio. Por ejemplo yo tuve que hacer:
[code] php  -c /Applications/MAMP/conf/php5.3/ app/console doctrine:mapping:import “ProyectoMiBundle” yml[/code]