2011-07-11 19 views
6

Estoy en el proceso de actualización de Doctrine 1.1.4 a Doctrine 2.0.6 en mi aplicación Zend. He instalado la herramienta de línea de comandos de Doctrine 2.¿Es posible generar clases de modelo utilizando Doctrine 2 directamente desde la base de datos?

En Doctrine 1.1.4, generé las clases de modelo directamente desde la base de datos (usando Doctrine :: generateModelsFromDb()), esto es posible en Doctrine 2, o tengo que pasar por el proceso de 'mapeo', es decir, por proporcionando las anotaciones de Docblock, las estructuras XML o YAML de las tablas.

La razón por la que pregunto esto es porque hay una opción 'setAutoGenerateProxyClass' en Doctrine 2, tengo la impresión de que esto significa que generará las clases de proxy desde cero.

aprecio la ayuda.

Respuesta

6

Autogenerar clases de proxy significa básicamente que Doctrine 2 generará automáticamente "clases de proxy" para sus entidades, en lugar de solo generarlas manualmente utilizando proxies de generación. Los proxies se usan cuando tienes relaciones en tus entidades y necesitan ser cargadas de manera diferida.

para generar información de mapeo de la base de datos, puede utilizar convertir-mapping:

php doctrine orm:convert-mapping --from-database yml /path/to/mapping-path-converted-to-yml 

Tenga en cuenta que esto sólo se recomienda para ser utilizado como punto de partida. El controlador de la base de datos no puede generar correctamente las asignaciones para todas las posibles combinaciones de opciones, por lo que probablemente solo deba ejecutar esto una vez y luego escribir las asignaciones usted mismo.

Ver Doctrine 2 manual, "Reverse Engineering the database"

3

Usted puede utilizar el "anotación", como conductor, si usted desea conseguir las entidades generadas:

php doctrine orm:convert-mapping --from-database annotation generatedModels 
Cuestiones relacionadas