Estuve trabajando en un proyecto que estaba hecho en Symfony 1.4, y se nos dio la oportunidad de migrar todo a Symfony 2.3, principalmente para actualizar y hacer los cambios mas rapidos, ya que los comandos que utiliza Propel (ORM) no eran ya muy compatibles y los resultados al ejecutarlos la verdad es que dejaban harto que desear, nos daba mas problemas que finalmente ayudarnos.
El principal problema que teniamos era el como podiamos migrar la Base de Datos, que ya existia a este nuevo proyecto sin perder nada, si bien no existe mucha documentacion oficial al respecto, es muy simple, luego de buscar un rato por la web encontre un comando bastante simple el cual te genera todas las entidades en Doctrine, obviamente no todo es 100% perfecto pero te da una base muy buena sobre la cual trabajar.
Que es lo que requerimos antes de ejecutar este comando:
- Bajar una version de Symfony, en este caso ocupamos Symfony 2.3.17
- Crear un Bundle en donde dejaremos todo esto (EJ : ANWebBundle)
- Configurar la conexion a la Base de Datos
- Probar que carga todo antes de generar esto, para evitar que nos muestre algun error por otra cosa
Teniendo estas cosas pasamos a ejecutar nuestro comando milagroso
php app/console doctrine:mapping:import ANWebBundle
Si ejecutamos esto nos generara todas las entidades en XML, si tu estas trabajando con Annotation, entonces deberas agregarle esto al final
php app/console doctrine:mapping:import ANWebBundle annotation
Obviamente el Bundle «ANWebBundle», fue el que cree en el punto 2
Con esto, te generara todas las entidades segun el esquema de la Base de Datos, ya es una buena base para trabajar, solo deberas revisar las claves entre las tablas y realizar los cambios que estimes pertinentes.
Una vez revisado y que este todo en orden, solo nos falta generarle los getter y setter respectivos, esto lo haces asi
php app/console doctrine:generate:entities ANWebBundle
Y listo, ya tienes tus entidades creadas y los respectivos accesos a ellos