How to use multiple database in Lumen How to use multiple database in Lumen laravel laravel

How to use multiple database in Lumen


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:

<?phpreturn [   '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 connectionapp('db')->connection()->select('xx');DB::connection()->select('yy');// Use mysql2 connectionapp('db')->connection('mysql2')->select('xx');DB::connection('mysql2')->select('yy');

Hope this helps you!!


This also worked. In the current version of Lumen 5.7

config/database.php

<?phpreturn [    'default' => env('DB_CONNECTION', 'sqlsrv'),    'migrations' => 'migrations',    'connections' => [        'sqlsrv' => [            'driver' => 'sqlsrv',            'host' => env('DB_HOST', 'localhost'),            'port' => env('DB_PORT', '1433'),            'database' => env('DB_DATABASE', 'forge'),            'username' => env('DB_USERNAME', 'forge'),            'password' => env('DB_PASSWORD', ''),            'charset' => 'utf8',            'prefix' => '',            'prefix_indexes' => true,        ],        'sqlsrv2' => [            'driver' => 'sqlsrv',            'host' => env('DB_HOST', 'localhost'),            'port' => env('DB_PORT', '1433'),            'database' => env('DB_DATABASE2', 'forge'),            'username' => env('DB_USERNAME', 'forge'),            'password' => env('DB_PASSWORD', ''),            'charset' => 'utf8',            'prefix' => '',            'prefix_indexes' => true,        ],    ],];

.env

DB_CONNECTION=sqlsrvDB_HOST=localhostDB_PORT=1433DB_DATABASE=database1DB_USERNAME=usernameDB_PASSWORD=passwordDB_DATABASE2=database2

Usage:

Model: protected $connection = 'sqlsrv2';Other: ->connection('sqlsrv2')

I hope i help you!

Reference:https://fideloper.com/laravel-multiple-database-connections