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