та там нечего вылаживать.. я кк вернусь через недельку к этой задачи так и выложу...
Исходные данные :
1. Лара 8.
2. Один дополнительный блок настройке в database.php
'bi' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL_BI'),
'host' => env('DB_HOST_BI', '
127.0.0.1'),
'port' => env('DB_PORT_BI', '3306'),
'database' => env('DB_DATABASE_BI', 'forge'),
'username' => env('DB_USERNAME_BI', 'forge'),
'password' => env('DB_PASSWORD_BI', ''),
'unix_socket' => env('DB_SOCKET_BI', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
А далее для теста есть два сценария:
1. это переключение на учетку что указана в .env
2. это сценарий, когда в динамике подставлять учетку базы.
Для первого сценария добавил в файл .env блок данных
DB_HOST_BI=91.xxx.xxx.xx
DB_PORT_BI=3306
DB_DATABASE_BI=dev_db
DB_USERNAME_BI=dev_db
DB_PASSWORD_BI=1234567
При обращение к базе
dd(DB::connection('bi')->select('select NOW()'));
———
Второй же сценарий - динам. назначение баз.
Config::set('
database.connections.bi', $CurrentDB);
DB::connection('bi')->selectOne('SELECT NOW()');
DB::purge('bi');
в общем как вернусь к задачке еще раз то и выложу конечно..просто по сути нечего вылаживать то.
К исходным данным также отночиться
три сервера (ip разные), три базы, три разные порта, три разные пароли, одинаковое название базы и логин.