Attempt to reuse db connections

This commit is contained in:
Matej Baco
2022-11-15 14:30:19 +01:00
parent 451c6334bb
commit bfe8b98008
+12 -2
View File
@@ -56,19 +56,29 @@ CLI::setResource('dbForConsole', function ($pools, $cache) {
}, ['pools', 'cache']);
CLI::setResource('getProjectDB', function (Group $pools, Database $dbForConsole, $cache) {
$getProjectDB = function (Document $project) use ($pools, $dbForConsole, $cache) {
$databases = [];
$getProjectDB = function (Document $project) use ($pools, $dbForConsole, $cache, &$databases) {
if ($project->isEmpty() || $project->getId() === 'console') {
return $dbForConsole;
}
$databaseName = $project->getAttribute('database');
if(isset($databases[$databaseName])) {
return $databases[$databaseName];
}
$dbAdapter = $pools
->get($project->getAttribute('database'))
->get($databaseName)
->pop()
->getResource();
$database = new Database($dbAdapter, $cache);
$database->setNamespace('_' . $project->getInternalId());
$databases[$databaseName] = $database;
return $database;
};