我想知道我是否可以在Symfony2
中设置多个数据库(我在Doctrine2中使用它),因为当我想看到另一个应用程序时,它表示存在错误而且这样的表不存在
我的问题是,每次我想要查看不同的应用程序时,我是否必须更改我的数据库(我在parameters.ini
文件中执行此操作)或者还有其他方法吗?
答案 0 :(得分:4)
基本上,您必须为每个数据库定义(至少)1个EntityManager,并且每个数据库至少定义1个连接。这可以通过app/config/config.yml
:
# Doctrine Configuration
doctrine:
dbal:
default_connection: conn1
connections:
conn1:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
conn2:
driver: %database2_driver%
host: %database2_host%
port: %database2_port%
dbname: %database2_name%
user: %database2_user%
password: %database2_password%
charset: UTF8
orm:
auto_generate_proxy_classes: %kernel.debug%
default_entity_manager: em1
entity_managers:
em1:
connection: conn1
mappings:
XxxBundle1: ~
em2:
connection: conn2
mappings:
XxxBundle2: ~
由于您必须告知哪个包包含给定EntityManager的映射实体,您必须为每个数据库创建(至少)1个包。当我写下here时,不要忘记删除orm部分中的auto_mapping
参数!
答案 1 :(得分:2)