Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como redefinir dinamicamente a configuração do banco de dados no Laravel?


Não testado, pois não tenho algo assim configurado atualmente, mas tenho certeza de que você precisa limpar o DB após uma troca de configuração:
$databases = array();
foreach($servers as $server){
    // Setting Config
    Config::set('database.connections.mysqlClient.host',$server->ip);
    Config::set('database.connections.mysqlClient.password',$server->mysql_password);

    foreach($server->databases as $database){
        DB::purge('mysqlClient'); // <-- Get rid of old connection
        $database->size = DB::connection('mysqlClient')->select('SELECT Round(Sum(data_length + index_length) / 1024 / 1024, 1) "db_size"
            FROM   information_schema.tables 
            where table_schema = "'.$database->name.'";'
        )[0]->db_size;

        $databases[] = $database;
    }
}

Editar:também há \DB::reconnect('mysqlClient'); mas as pessoas documentaram problemas com ele