Doctrine allows you to bind connections to components (= your ActiveRecord classes). This means everytime a component issues a query or data is being fetched from the table the component is pointing at Doctrine will use the bound connection. \$conn = \$manager->openConnection(new PDO('dsn','username','password'), 'connection 1'); \$conn2 = \$manager->openConnection(new PDO('dsn2','username2','password2'), 'connection 2'); \$manager->bindComponent('User', 'connection 1'); \$manager->bindComponent('Group', 'connection 2'); \$q = new Doctrine_Query(); // Doctrine uses 'connection 1' for fetching here \$users = \$q->from('User u')->where('u.id IN (1,2,3)')->execute(); // Doctrine uses 'connection 2' for fetching here \$groups = \$q->from('Group g')->where('g.id IN (1,2,3)')->execute(); ?>