1
0
Fork 0
mirror of synced 2024-09-29 08:51:28 +13:00

feat: Adapting Migrate to DI

This commit is contained in:
Binyamin Yawitz 2024-06-24 13:31:01 -04:00
parent 4ea291705a
commit aa4bc1c776
No known key found for this signature in database
2 changed files with 30 additions and 38 deletions

View file

@ -170,9 +170,7 @@ abstract class Migration
Console::log('Migrating Collection ' . $collection['$id'] . ':');
\Co\run(function (array $collection, callable $callback) {
foreach ($this->documentsIterator($collection['$id']) as $document) {
go(function (Document $document, callable $callback) {
if (empty($document->getId()) || empty($document->getCollection())) {
return;
}
@ -190,9 +188,7 @@ abstract class Migration
Console::error('Failed to update document: ' . $th->getMessage());
return;
}
}, $document, $callback);
}
}, $collection, $callback);
}
}

View file

@ -9,8 +9,6 @@ use Utopia\Database\Database;
use Utopia\Database\Document;
use Utopia\Database\Query;
use Utopia\Database\Validator\Authorization;
use Utopia\Http\Adapter\FPM\Server;
use Utopia\Http\Http;
use Utopia\Http\Validator\Text;
use Utopia\Platform\Action;
use Utopia\Registry\Registry;
@ -33,7 +31,8 @@ class Migrate extends Action
->inject('getProjectDB')
->inject('register')
->inject('authorization')
->callback(fn ($version, $cache, $dbForConsole, $getProjectDB, Registry $register, Authorization $authorization) => $this->action($version, $cache, $dbForConsole, $getProjectDB, $register, $authorization));
->inject('console')
->callback(fn ($version, $cache, $dbForConsole, $getProjectDB, Registry $register, Authorization $authorization, Document $console) => $this->action($version, $cache, $dbForConsole, $getProjectDB, $register, $authorization, $console));
}
private function clearProjectsCache(Cache $cache, Document $project)
@ -45,7 +44,7 @@ class Migrate extends Action
}
}
public function action(string $version, Cache $cache, Database $dbForConsole, callable $getProjectDB, Registry $register, Authorization $auth)
public function action(string $version, Cache $cache, Database $dbForConsole, callable $getProjectDB, Registry $register, Authorization $auth, Document $console)
{
$auth->disable();
if (!array_key_exists($version, Migration::$versions)) {
@ -54,12 +53,9 @@ class Migrate extends Action
return;
}
$http = new Http(new Server(), 'UTC');
Console::success('Starting Data Migration to version ' . $version);
$console = $http->getResource('console');
$limit = 30;
$sum = 30;
$offset = 0;
@ -78,7 +74,7 @@ class Migrate extends Action
$class = 'Appwrite\\Migration\\Version\\' . Migration::$versions[$version];
/** @var Migration $migration */
$migration = new $class();
$migration = new $class($auth, );
while (!empty($projects)) {
foreach ($projects as $project) {