Doctrine 2 - Multiple databases configuration and use Doctrine 2 - Multiple databases configuration and use symfony symfony

Doctrine 2 - Multiple databases configuration and use


You need to add another level of configuration and also use multiple entity managers as Doctrine uses 1 entity manager per database connection .. your configuration might look something like this :

doctrine:    dbal:      connections:        default:          driver:   %database_driver%    # <          host:     %database_host%      # |          port:     %database_port%      # | Defined in          dbname:   %database_name%      # | parameters.ini          user:     %database_user%      # |          password: %database_password%  # <        another:          driver:   %database2_driver%    # <          host:     %database2_host%      # |          port:     %database2_port%      # | Defined in          dbname:   %database2_name%      # | parameters.ini          user:     %database2_user%      # |          password: %database2_password%  # <

Then you define your multiple entity managers as so

doctrine:    orm:        default_entity_manager:   default        entity_managers:            default:                connection:       default                mappings:                    AcmeDemoBundle: ~                    AcmeStoreBundle: ~            another:                connection:       another                mappings:                    AcmeCustomerBundle: ~

then in your action you can use the following to get the correct entity manager :

$em = $this->get('doctrine')->getEntityManager('default');$em = $this->get('doctrine')->getEntityManager('another');

depending on which entity manager you required