В одном проекте может потребоваться обращаться к 2 или более базам данных. Ниже опишу, как моно настроить подключение к нескольким базам данных на laravel.
Laravel несколько баз данных
01.02.2020
Первоначально в настройках Laravel нужно указать данные для соединения. Файл .env (в корне проекта):
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=db_laravel DB_USERNAME=laravel DB_PASSWORD=PASSWORD DB2_CONNECTION=mysql DB2_HOST=192.168.0.101 DB2_PORT=3306 DB2_DATABASE=db_laravel2 DB2_USERNAME=laravel2 DB2_PASSWORD=PASSWORD
Дальше в config/database.php (в старых версиях app/config/database.php) дать им имена:
'mysql' => [
'driver' => env('DB_CONNECTION'),
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
],
'mysql_remote' => [
'driver' => env('DB2_CONNECTION'),
'host' => env('DB2_HOST'),
'port' => env('DB2_PORT'),
'database' => env('DB2_DATABASE'),
'username' => env('DB2_USERNAME'),
'password' => env('DB2_PASSWORD'),
],
После этого можно указывать имя соединения (mysql_remote) в запросах, моделях и т.д.
$aTMP = DB::connection('mysql_remote')->select(...);
Schema::connection('mysql_remote')->create('some_table', function($table)
{
$table->...
});
Если имя соединения не будет указано, то запрос пойдет через первое объявленное в config/database.php.