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


Lartak
Réponse acceptée

Bonsoir.
As-tu pensé a bien consulter la documentation ?
How to Work with multiple Entity Managers and Connections

BlueCake
Auteur

@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 !