Symfony2:如何从SAME Bundle中的MULTIPLE现有数据库生成实体?

时间:2013-03-27 11:37:13

标签: php symfony doctrine

我的目标是访问One Project Bundle中的多个数据库

我通读了symfony2文档并成功完成了以下操作:

  1. configure multiple connections for different Bundles
  2. generate Entities from ONE Existing Database 使用:

    php app/console doctrine:mapping:import AcmeBlogBundle annotation
    php app/console doctrine:generate:entities AcmeBlogBundle
    
  3. 但我找不到从SAME Bundle中的多个现有数据库生成实体的方法,以便我可以访问One Bundle中的多个数据库。有任何想法吗?

    P.S。我不熟悉学说。所以实际上如果有办法在没有Doctrine的情况下做Symfony2,我也会很感激。

    更新#1:

    Cerad's answer非常接近。然而,一个问题尚未解决。由于我在不同的数据库中有相同的表名,最好将它们组织到实体文件夹中的separte文件夹中。我查看了thisthat等类似帖子。但解决方案对我不起作用。他们的解决方案只是将所有实体直接放入Entity Folder,忽略config.yml中指定的dir选项。这个问题有解决方法吗?

1 个答案:

答案 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直接在多个数据库中查询(加入)。至少不是很容易。只要您计划一次将查询限制在一个数据库中,那么您就可以了。

这实际上是一个有点高级的话题。您可能希望花一些时间学习文档。可能更容易开始使用一个数据库,然后再拆分。