Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich die Datenbankkonfiguration in Laravel dynamisch zurücksetzen?

Ungetestet, da ich so etwas derzeit nicht eingerichtet habe, aber ich bin sicher, dass Sie die DB löschen müssen nach einem Konfigurationstausch:

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

Bearbeiten:Es gibt auch \DB::reconnect('mysqlClient'); aber Leute haben Probleme damit dokumentiert