Introduction
Laravel prend en charge officiellement les bases de données suivantes.- MySQL / MariaDB
- PostgreSQL
- SQLite
- SQL Server
Cette page couvre les prérequis de connexion. Pour les requêtes pratiques, consultez le Query Builder, pour la gestion de schéma les migrations, et pour le peuplement initial le seeding.
Configuration
Les paramètres de base de données sont centralisés dansconfig/database.php.
Vous choisissez la connexion par défaut avec default et définissez les détails de chaque connexion dans connections.
.env.
DB_CONNECTION=sqlite et le chemin de DB_DATABASE.
Séparation lecture / écriture
Pour séparer les lectures (SELECT) et les écritures (INSERT / UPDATE / DELETE) sur des hôtes différents, configurez read et write dans la même connexion.
sticky à true, les lectures effectuées après une écriture dans la même requête sont bloquées sur la connexion write.
Éviter les lectures obsolètes dans les requêtes suivantes
sticky ne s’applique qu’au sein d’une même requête. Pour lire les données fraîchement écrites également dans les requêtes suivantes de la même session, ajoutez le middleware PreventStaleDatabaseReads au groupe de middleware web.
write pour les lectures sur cette connexion. Pour modifier cette durée, utilisez for.
StartSession. Il n’affecte pas les lectures des autres sessions ni des autres connexions de base de données.
Lire temporairement depuis la connexion d’écriture
Pour forcer les lectures d’un callback sur la connexionwrite, utilisez la méthode usingWritePdo de la connexion.
Connexion PostgreSQL avec pool
Si vous utilisez un service PostgreSQL managé fournissant un pooling de connexions en mode transaction (type PgBouncer), configurez les optionspooled et direct.
pooled activé, Laravel effectue le routage automatiquement.
Pour utiliser explicitement la connexion
direct dans le code, ajoutez le suffixe ::direct au nom de connexion.
Connexions multiples
Vous pouvez définir plusieurs connexions dansconfig/database.php et basculer avec DB::connection().
Exécution de requêtes SQL
La façadeDB propose des méthodes dédiées par type de requête.
Écoute des requêtes
Pour suivre le SQL exécuté, enregistrezDB::listen() dans la méthode boot() d’un service provider.
Transactions
Pour traiter plusieurs mises à jour comme une unité atomique, utilisezDB::transaction().
En cas d’exception, Laravel effectue automatiquement le rollback.
attempts.
beginTransaction / rollBack / commit.
Prochaines étapes
Query Builder
Découvrez comment construire des requêtes en toute sécurité avec la configuration de connexion.
Migrations
Apprenez à versionner le schéma de votre base de données.
Seeding
Alimentez votre base avec des données de développement et de test de manière reproductible.