diff --git a/src/Appwrite/Platform/Workers/Migrations.php b/src/Appwrite/Platform/Workers/Migrations.php index 7bbfcfbce2..d7105ccecc 100644 --- a/src/Appwrite/Platform/Workers/Migrations.php +++ b/src/Appwrite/Platform/Workers/Migrations.php @@ -85,6 +85,7 @@ class Migrations extends Action return; } + $log->addTag('migrationId', $migration->getId()); $log->addTag('projectId', $project->getId()); $this->processMigration($project, $migration, $log); @@ -256,6 +257,7 @@ class Migrations extends Action $migrationDocument = $this->dbForProject->getDocument('migrations', $migration->getId()); $migrationDocument->setAttribute('stage', 'processing'); $migrationDocument->setAttribute('status', 'processing'); + $log->addTag('stage', 'processing'); $this->updateMigrationDocument($migrationDocument, $projectDocument); $log->addTag('type', $migrationDocument->getAttribute('source')); @@ -277,6 +279,7 @@ class Migrations extends Action /** Start Transfer */ $migrationDocument->setAttribute('stage', 'migrating'); + $log->addTag('stage', 'migrating'); $this->updateMigrationDocument($migrationDocument, $projectDocument); $transfer->run($migrationDocument->getAttribute('resources'), function () use ($migrationDocument, $transfer, $projectDocument) { $migrationDocument->setAttribute('resourceData', json_encode($transfer->getCache())); @@ -291,21 +294,25 @@ class Migrations extends Action if (!empty($sourceErrors) || !empty($destinationErrors)) { $migrationDocument->setAttribute('status', 'failed'); $migrationDocument->setAttribute('stage', 'finished'); + $log->addTag('stage', 'finished'); - $errorMessages = []; + $prettyMessages = []; + $simpleMessages = []; foreach ($sourceErrors as $error) { /** @var MigrationException $error */ - $errorMessages[] = "Error occurred while fetching '{$error->getResourceType()}:{$error->getResourceId()}' from source with message: '{$error->getMessage()}'"; + $prettyMessages[] = "Error occurred while fetching '{$error->getResourceType()}:{$error->getResourceId()}' from source with message: '{$error->getMessage()}'"; + $simpleMessages[] = "[Source] ['{$error->getResourceType()}:{$error->getResourceId()}'] '{$error->getMessage()}'"; } foreach ($destinationErrors as $error) { /** @var MigrationException $error */ $errorMessages[] = "Error occurred while pushing '{$error->getResourceType()}:{$error->getResourceId()}' to destination with message: '{$error->getMessage()}'"; } - $migrationDocument->setAttribute('errors', $errorMessages); + $migrationDocument->setAttribute('errors', $prettyMessages); + $log->addExtra('migrationErrors', json_encode($simpleMessages)); $this->updateMigrationDocument($migrationDocument, $projectDocument); - return; + throw new Exception('Migration failed'); } $migrationDocument->setAttribute('status', 'completed'); @@ -338,6 +345,7 @@ class Migrations extends Action } $migrationDocument->setAttribute('errors', $errorMessages); + $log->addTag('migrationErrors', json_encode($errorMessages)); } } finally { if ($tempAPIKey) {