Search code examples
laravellumenlumen-5.2lumen-5.3

How to use multiple database in Lumen


We've using Lumen for building API's , Now we need to access multiple databases.

Currently using .env for database config but unable to found the way to multiple databases in .env

where we need to read 2nd connection ...


Solution

  • First, you'll need to configure your connections. If you don't already have one you'll need to create a config directory in your project and add the file config/database.php. It might look like this:

    <?php
    
    return [
    
       'default' => 'accounts',
    
       'connections' => [
            'mysql' => [
                'driver'    => 'mysql',
                'host'      => env('DB_HOST'),
                'port'      => env('DB_PORT'),
                'database'  => env('DB_DATABASE'),
                'username'  => env('DB_USERNAME'),
                'password'  => env('DB_PASSWORD'),
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
                'strict'    => false,
             ],
    
            'mysql2' => [
                'driver'    => 'mysql',
                'host'      => env('DB2_HOST'),
                'port'      => env('DB_PORT'),
                'database'  => env('DB2_DATABASE'),
                'username'  => env('DB2_USERNAME'),
                'password'  => env('DB2_PASSWORD'),
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
                'strict'    => false,
            ],
        ],
    ];
    

    Once you've added your connection configurations, you can access them by getting the database manager object out of the container and calling ->connection('connection_name').

    // Use default connection
    app('db')->connection()->select('xx');
    DB::connection()->select('yy');
    
    // Use mysql2 connection
    app('db')->connection('mysql2')->select('xx');
    DB::connection('mysql2')->select('yy');
    

    Hope this helps you!!