我的目标是访问One Project Bundle中的多个数据库.
我通读了symfony2文档并成功完成了以下操作:
> configure multiple connections for different Bundles
> generate Entities from ONE Existing Database使用:
PHP app/console doctrine:mapping:import AcmeBlogBundle annotation PHP app/console doctrine:generate:entities AcmeBlogBundle
但我找不到从SAME Bundle中的MULTIPLE现有数据库生成实体的方法,以便我可以访问One Bundle中的多个数据库.有任何想法吗?
附:我不熟悉学说.所以实际上如果有办法在没有Doctrine的情况下做Symfony2,我也很感激.
更新#1:
Cerad’s answer非常接近.然而,一个问题尚未解决.由于我在不同的数据库中有相同的表名,最好将它们组织到实体文件夹中的separte文件夹中.我检查了类似的帖子,如this和that.但解决方案对我不起作用.他们的解决方案只是将所有实体直接放入Entity Folder,忽略config.yml中指定的dir选项.这个问题有解决方法吗?
它配置多个实体管理器(不是连接)的第一步,每个数据库一个.然后,您可以在doctrine命令上使用–em选项指定要使用的实体管理器.
PHP app/console doctrine:mapping:import "AcmeBlogBundle" annotation --em=name1 PHP app/console doctrine:mapping:import "AcmeBlogBundle" annotation --em=name2
请注意,您无法使用doctrine直接在多个数据库中查询(加入).至少不是很容易.只要您计划一次将查询限制到一个数据库,那么您就可以了.
这实际上是一个有点高级的话题.您可能希望花一些时间学习文档.也可能更容易开始使用一个数据库,然后再拆分.