From d6fd05866a4db1d76c682b7c28e8fc459e474df0 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Fri, 16 May 2025 22:06:59 +1200 Subject: [PATCH] Ignore duplicate on create collection --- src/Appwrite/Migration/Migration.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Appwrite/Migration/Migration.php b/src/Appwrite/Migration/Migration.php index a2ef038a2a..d7bef9ba93 100644 --- a/src/Appwrite/Migration/Migration.php +++ b/src/Appwrite/Migration/Migration.php @@ -158,7 +158,7 @@ abstract class Migration continue; } - Console::log('Migrating collection ' . $collection['$id'] . '...'); + Console::log('Migrating documents for collection "' . $collection['$id'] . '"'); $this->dbForProject->foreach($collection['$id'], function(Document $document) use ($collection, $callback) { if (empty($document->getId()) || empty($document->getCollection())) { @@ -204,17 +204,23 @@ abstract class Migration }; if (!$this->dbForProject->getCollection($id)->isEmpty()) { - $attributes = []; - $indexes = []; $collection = $this->collections[$collectionType][$id]; + + $attributes = []; foreach ($collection['attributes'] as $attribute) { $attributes[] = new Document($attribute); } + + $indexes = []; foreach ($collection['indexes'] as $index) { $indexes[] = new Document($index); } - $this->dbForProject->createCollection($name, $attributes, $indexes); + try { + $this->dbForProject->createCollection($name, $attributes, $indexes); + } catch (Duplicate ) { + Console::warning('Failed to create collection "' . $name . '": Collection already exists'); + } } }