mirror of
https://github.com/silverstripe/silverstripe-testsession
synced 2024-10-22 12:06:00 +00:00
Merge 5d14e87748af4d3bddd9a20846baed407e58d400 into 097313b0f1fc1ab280df08a0c85aaff28548eb51
This commit is contained in:
commit
87b4f99f91
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user