Travailler avec plusieurs base de données Doctrine

Par BlueCake, il y a 8 ans


Bonjour,

Je code actuellement un site pour un client et celui-ci posséde deux base de données une servant à tous ce qui est authentification, et une autre tous ce qui est informations,utilisation du logiciel vendu.

Le soucis c'est que sur Symfony4 on détermine nos informations bdd dans le .env

DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name

Puis j'ai plus aperçevoir que dans doctrine.yaml on utilise ceci pour dire à Doctrine de se connectés à la base de donnée, donc je suis un peu perdu pour l'utilisation de plusieurs base de donnée.

doctrine: dbal: # configure these for your database server driver: 'pdo_mysql' server_version: '5.7' charset: utf8mb4 # With Symfony 3.3, remove the `resolve:` prefix url: '%env(resolve:DATABASE_URL)%'

Donc j'aimerais savoir comment faire dans l'exemple ou .env posséderai deux base de donnée:

DATABASE_AUTH=mysql://root:test@127.0.0.1:3306/auth DATABASE_UTIL=mysql://root:test@127.0.0.1:3306/util

Comment dire a doctrine.yaml qu'il y à pas une mais plusieurs base de donnée, et comment utiliser ceci dans mes Repository/Entity ?
Car sa m'a l'air assez brouillons.

Cordialement, et merci de votre aide !

2 réponses

BlueCake, il y a 8 ans

@Lartak, alors oui j'ai vu la documentation, mais je ne savais pas trop comment m'y prendre sachant que pour récuperer ma connection à ma db je fais comme ceci du coté de mes Repository:

$this->getEntityManager()->getConnection()

peux-être suffit t-il de faire sa du coup ?:

$db_default = $this->getDoctrine()->getManager('default'); $db_customer = $this->getDoctrine()->getManager('customer');

Si ne me trompe pas ? J'essayerais demain en tout cas merci à toi !