mirror of
https://github.com/silverstripe/silverstripe-testsession
synced 2024-10-22 14:06:00 +02:00
Compare commits
2 Commits
051fe891af
...
87b4f99f91
Author | SHA1 | Date | |
---|---|---|---|
|
87b4f99f91 | ||
|
5d14e87748 |
@ -570,14 +570,14 @@ class TestSessionEnvironment
|
||||
}
|
||||
|
||||
// Connect to database
|
||||
DB::connect($databaseConfig);
|
||||
$this->connectToDB($databaseConfig);
|
||||
} else {
|
||||
// We've already connected to the database, do a fast check to see what database we're currently using
|
||||
$db = DB::get_conn()->getSelectedDatabase();
|
||||
if (isset($state->database) && $db != $state->database) {
|
||||
$this->oldDatabaseName = $databaseConfig['database'];
|
||||
$databaseConfig['database'] = $state->database;
|
||||
DB::connect($databaseConfig);
|
||||
$this->connectToDB($databaseConfig);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -613,4 +613,15 @@ class TestSessionEnvironment
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user