This commit is contained in:
Steve Boyd 2024-09-24 23:03:25 +00:00 committed by GitHub
commit 87b4f99f91
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -570,14 +570,14 @@ class TestSessionEnvironment
} }
// Connect to database // Connect to database
DB::connect($databaseConfig); $this->connectToDB($databaseConfig);
} else { } else {
// We've already connected to the database, do a fast check to see what database we're currently using // We've already connected to the database, do a fast check to see what database we're currently using
$db = DB::get_conn()->getSelectedDatabase(); $db = DB::get_conn()->getSelectedDatabase();
if (isset($state->database) && $db != $state->database) { if (isset($state->database) && $db != $state->database) {
$this->oldDatabaseName = $databaseConfig['database']; $this->oldDatabaseName = $databaseConfig['database'];
$databaseConfig['database'] = $state->database; $databaseConfig['database'] = $state->database;
DB::connect($databaseConfig); $this->connectToDB($databaseConfig);
} }
} }
} }
@ -613,4 +613,15 @@ class TestSessionEnvironment
return true; return true;
} }
private function connectToDB(array $databaseConfig): void
{
if (method_exists(DB::class, 'hasConfig') && DB::hasConfig('primary')) {
// CMS 5.4+ - ensure we connect the primary connection and not a replica
DB::connect($databaseConfig, 'primary');
} else {
// CMS 5.3 and below do not support replica connections
DB::connect($databaseConfig);
}
}
} }