Inicio > Desarrollo Web > Tutoriales de Laravel > Cómo conectar múltiples bases de datos en Laravel fácilmente

Cómo conectar múltiples bases de datos en Laravel fácilmente

Diego Cortés
Diego Cortés
January 20, 2025
Cómo conectar múltiples bases de datos en Laravel fácilmente

En el desarrollo de aplicaciones web, gestionar datos de distintas fuentes es una tarea común que puede volverse complicada. Laravel, como framework de PHP, ofrece herramientas poderosas que facilitan esta labor. En este artículo, te explicaremos cómo puedes conectar múltiples bases de datos en Laravel de manera sencilla, permitiendo a los desarrolladores optimizar sus proyectos y manejar datos de manera más eficiente.

Configuración de múltiples conexiones en Laravel

Laravel permite configurar varias conexiones a bases de datos desde su archivo de configuración. Para empezar, debes abrir el archivo config/database.php. Este archivo contiene las configuraciones para todas las conexiones de base de datos.

Paso 1: Definir nuevas conexiones

Dentro de este archivo, encontrarás un arreglo llamado connections, donde se definen las conexiones que utilizarás. Puedes agregar una nueva conexión simplemente replicando la estructura de una conexión ya existente, como la conexión mysql. A continuación, se muestra un ejemplo de cómo definir múltiples bases de datos:

'mysql' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'engine' => null,
],

'second_mysql' => [
    'driver' => 'mysql',
    'host' => env('SECOND_DB_HOST', '127.0.0.1'),
    'port' => env('SECOND_DB_PORT', '3306'),
    'database' => env('SECOND_DB_DATABASE', 'forge'),
    'username' => env('SECOND_DB_USERNAME', 'forge'),
    'password' => env('SECOND_DB_PASSWORD', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'engine' => null,
],

Paso 2: Configuración del archivo .env

Luego de definir las conexiones en database.php, es esencial configurar el archivo .env para que Laravel reconozca las nuevas bases de datos. Aquí puedes establecer las variables de entorno necesarias para cada conexión:

SECOND_DB_HOST=127.0.0.1
SECOND_DB_PORT=3306
SECOND_DB_DATABASE=nombre_de_la_base_de_datos
SECOND_DB_USERNAME=usuario
SECOND_DB_PASSWORD=contraseña

Uso de conexiones en modelos

Para utilizar diferentes conexiones en tus modelos, solo necesitas especificar la conexión que deseas usar. Esto se realiza al definir una propiedad $connection en tu modelo. Por ejemplo:

class User extends Model
{
    protected $connection = 'second_mysql';
}

De esta manera, todas las operaciones relacionadas con el modelo User se ejecutarán en la base de datos definida por second_mysql.

Realizando consultas en múltiples bases de datos

Cuando trabajas con múltiples bases de datos, puedes realizar consultas en la conexión deseada utilizando el método DB::connection. Este método te permite especificar la conexión mediante un conjunto de comandos:

$users = DB::connection('second_mysql')->table('users')->get();

Esto te permite consultar la tabla users de la segunda base de datos sin complicaciones.

Cierre

Conectar múltiples bases de datos en Laravel no solo es posible, sino que también es fácil, gracias a la flexibilidad y potencia del framework. Con unos pocos pasos simples, puedes gestionar diferentes fuentes de datos y optimizar el rendimiento de tu aplicación.

Si deseas seguir aprendiendo sobre Laravel y otros temas relacionados con el desarrollo web, te invito a que leas más noticias en mi blog.

Diego Cortés
Diego Cortés
Full Stack Developer, SEO Specialist with Expertise in Laravel & Vue.js and 3D Generalist

Categorías

Page loaded in 25.07 ms