8

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

我通读了 symfony2 文档并设法做到了以下几点:

  1. 为不同的Bundle配置多个连接
  2. 使用以下方法从一个现有数据库生成实体

    php app/console doctrine:mapping:import AcmeBlogBundle annotation
    php app/console doctrine:generate:entities AcmeBlogBundle
    

但是我找不到从 SAME Bundle 中的多个现有数据库生成实体的方法,以便我可以访问一个 Bundle 中的多个数据库。有任何想法吗?

PS我对Doctrine不熟悉。所以实际上,如果有办法在没有 Doctrine 的情况下做 Symfony2,我也将不胜感激。

更新#1:

Cerad 的回答非常接近。然而,一个问题还没有解决。由于我在不同的数据库中有一些相同的表名,最好将它们组织到实体文件夹中的单独文件夹中。我已经检查过类似的帖子。但是解决方案对我不起作用。他们的解决方案只是将所有实体直接放入实体文件夹,忽略 config.yml 中指定的 dir 选项。这个问题有解决方法吗?

4

1 回答 1

6

第一步是配置多个实体管理器(不是连接),每个数据库一个。然后,您可以在学说命令上使用 --em 选项来指定要使用的实体管理器。

php app/console doctrine:mapping:import "AcmeBlogBundle" annotation --em=name1
php app/console doctrine:mapping:import "AcmeBlogBundle" annotation --em=name2

请注意,您将无法使用教义直接查询(连接)多个数据库。至少不是很容易。只要您计划一次将查询限制为一个数据库,那么您就可以了。

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

于 2013-03-27T14:08:14.990 回答