Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment réinitialiser dynamiquement la configuration de la base de données dans Laravel ?

Non testé car je n'ai pas quelque chose comme ça actuellement configuré, mais je suis sûr que vous devez purger la DB après un échange de configuration :

$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;
    }
}

Edit :il y a aussi \DB::reconnect('mysqlClient'); mais les gens ont documenté des problèmes avec cela