我正在Zend应用程序中从Doctrine 1.1.4升级到Doctrine 2.0.6。我已经安装了Doctrine 2命令行工具。
在Doctrine 1.1.4中,我直接从数据库生成模型类(使用Doctrine :: generateModelsFromDb()),这在Doctrine 2中是否可行,或者我是否必须通过'映射'过程,即提供Docblock注释,表格的XML或YAML结构。
我之所以这么说是因为Doctrine 2中有一个'setAutoGenerateProxyClass'选项,我觉得这意味着它会从头开始生成代理类。
感谢帮助。
答案 0 :(得分:6)
自动生成代理类基本上意味着Doctrine 2将自动为您的实体生成“代理类”,而不是仅使用generate-proxies手动生成它们。当您在实体中存在关系并且需要延迟加载时,会使用代理。
要从数据库生成映射信息,可以使用convert-mapping:
php doctrine orm:convert-mapping --from-database yml /path/to/mapping-path-converted-to-yml
请记住,这仅建议用作起点。数据库驱动程序无法正确生成所有可能的选项组合的映射,因此您可能只需运行一次,然后自己编写映射。
答案 1 :(得分:3)
如果要获取生成的实体,可以使用“注释”作为驱动程序:
php doctrine orm:convert-mapping --from-database annotation generatedModels