Introduzione
Laravel supporta ufficialmente i seguenti database.- MySQL / MariaDB
- PostgreSQL
- SQLite
- SQL Server
Questa pagina copre le premesse sulle connessioni al database. Per le query pratiche consulta Query Builder, per la gestione dello schema le Migration, per l’inserimento dei dati iniziali il Seeding.
Configurazione
La configurazione del database è concentrata inconfig/database.php.
Con default scegli la connessione predefinita e con connections definisci i dettagli di ciascuna.
.env imposta almeno quanto segue.
DB_CONNECTION=sqlite e il percorso di DB_DATABASE.
Separazione delle connessioni di lettura e scrittura
Se vuoi separare letture (SELECT) e scritture (INSERT / UPDATE / DELETE) su host diversi, configura read e write all’interno della stessa connessione.
sticky impostato a true, le letture successive a una scrittura nella stessa richiesta vengono fissate sulla connessione di scrittura.
Connessione PostgreSQL con pool
Quando usi un servizio PostgreSQL gestito che offre connection pooling in modalità transaction (come PgBouncer), configura le opzionipooled e direct.
pooled, Laravel effettua automaticamente lo smistamento.
Per usare esplicitamente la connessione direct nel codice applicativo, aggiungi il suffisso
::direct al nome della connessione.
Connessioni multiple al database
Puoi definire più connessioni inconfig/database.php e cambiarle con DB::connection().
Esecuzione di query SQL
La facadeDB fornisce metodi dedicati per ciascun tipo di query.
Ascolto delle query
Se vuoi tracciare l’SQL eseguito, registraDB::listen() in boot() di un Service Provider.
Transazioni
Per trattare più aggiornamenti come un’unica unità, usaDB::transaction().
Se si verifica un’eccezione, Laravel effettua automaticamente il rollback.
attempts.
beginTransaction / rollBack / commit.
Prossimi passi
Query Builder
Impara a costruire query in modo sicuro usando la configurazione della connessione.
Migrations
Impara a versionare lo schema del database a cui ti sei connesso.
Seeding
Impara a inserire dati per sviluppo e test in modo riproducibile.