Introducción
Laravel soporta oficialmente las siguientes bases de datos:- MySQL / MariaDB
- PostgreSQL
- SQLite
- SQL Server
Esta página cubre las bases de la conexión. Para consultas prácticas, consulta Query Builder; para gestión del esquema, Migrations; y para carga inicial de datos, Seeding.
Configuración
La configuración se concentra enconfig/database.php.
Con default eliges el nombre de la conexión por defecto, y en connections defines los detalles de cada conexión.
.env:
DB_CONNECTION=sqlite y la ruta en DB_DATABASE.
Separación de conexiones de lectura y escritura
Si quieres separar las lecturas (SELECT) y las escrituras (INSERT / UPDATE / DELETE) en hosts distintos, configura read y write dentro de la misma conexión.
sticky a true, dentro de la misma solicitud las lecturas posteriores a una escritura se fijan en la conexión de escritura.
Conexión pooled a PostgreSQL
Si utilizas un servicio gestionado de PostgreSQL con pooling en modo transacción como PgBouncer, configura las opcionespooled y direct.
pooled, Laravel enruta automáticamente las operaciones.
Si dentro del código de la aplicación quieres usar explícitamente la conexión directa, añade el sufijo
::direct al nombre de la conexión.
Múltiples conexiones a base de datos
Puedes definir varias conexiones enconfig/database.php y cambiar entre ellas con DB::connection().
Ejecución de consultas SQL
La facadeDB tiene métodos específicos por tipo de consulta.
Escucha de consultas
Si quieres rastrear las consultas ejecutadas, registraDB::listen() en el boot() de un service provider.
Transacciones
Para tratar varias actualizaciones como una unidad, usaDB::transaction().
Si se lanza una excepción, Laravel hace rollback automáticamente.
attempts.
beginTransaction, rollBack y commit.
Próximos pasos
Query Builder
Aprende a construir consultas de forma segura utilizando la configuración de conexión.
Migrations
Aprende a versionar el esquema de la base de datos conectada.
Seeding
Aprende a poblar de forma reproducible datos para desarrollo y pruebas.