Home » Programmation Web » Framework » Gestion de plusieurs BDD dans Laravel

Gestion de plusieurs BDD dans Laravel

Dans certains contextes de projet, on a besoins d’avoir accès à plusieurs bases de données (au moins 2). Dans le contexte que j’ai pu avoir, il me fallait configurer 2 BDD. La première base était sur MySQL, et la deuxième sur PostgreSQL.

Voici les différentes étapes que j’ai pu effectuer :

La première étape est de définir les connexions de base de données dans le fichier de configuration config/database.php. Il faut ajouter une nouvelle connexion à la section connections du tableau de configuration. Par exemple :

Configuration des 2 bases de données.

Ensuite, il faut définir les variables d’environnement pour la deuxième base de données dans le fichier .env :

Variables d’environnement pour la deuxième base de données.

A partir de là, on peut utiliser les méthodes du Query Builder pour spécifier la connexion qu’on souhaite utiliser :

Query Builder connexion

L’étape suivante et de pouvoir effectuer les migrations des tables vers la deuxième base de données dans Laravel, il suffit de spécifier la connexion à utiliser lors de l’exécution des migrations. Il faut tout d’abord créer une migration Laravel.
Voici la commande :

commande de migration Laravel

Dans le fichier de migration généré, on spécifie la connexion à utiliser :

Migration Laravel avec une connexion BDD.

4. Ensuite, vous pouvez exécuter vos migrations comme d’habitude :

Commande Laravel pour les migrations.

Cela créera la table test dans votre base de données PostgreSQL.
Notez que si vous voulez exécuter toutes les migrations sur la deuxième base de données, vous pouvez utiliser la commande suivante :

Commande Laravel pour les migrations, avec choix de la base de données.

Cela exécutera toutes les migrations disponibles sur la connexion pgsql.

Et voilà. Qu’en avez-vous penser ?

Posté dans Framework, PHP, Programmation Web

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.