sql >> Databasteknik >  >> RDS >> Mysql

Hur återställer man dynamiskt databaskonfiguration i Laravel?

Otestad eftersom jag inte har något liknande konfigurerat för närvarande, men jag är säker på att du måste rensa DB efter ett konfigurationsbyte:

$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:Det finns också \DB::reconnect('mysqlClient'); men folk har dokumenterade problem med det




  1. Behöver en tidseffektiv metod för att importera stor CSV-fil via PHP till flera MySQL-tabeller

  2. Skapa en tabell i MySQL

  3. Lagrad procedur för att kopiera data från en tabell till en annan

  4. postgreSQL ändra kolumndatatyp till tidsstämpel utan tidszon