From dddd3ba35643e8fdb4de4061a422f589faa3fbbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Tue, 5 Sep 2023 12:59:09 +0200 Subject: [PATCH] Add filter duplicated documents migration and set unique on uuid --- ...er_duplicated_documents_and_set_unique.php | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 database/migrations/2023_09_05_123411_filter_duplicated_documents_and_set_unique.php diff --git a/database/migrations/2023_09_05_123411_filter_duplicated_documents_and_set_unique.php b/database/migrations/2023_09_05_123411_filter_duplicated_documents_and_set_unique.php new file mode 100644 index 0000000..29ee93f --- /dev/null +++ b/database/migrations/2023_09_05_123411_filter_duplicated_documents_and_set_unique.php @@ -0,0 +1,54 @@ +get()->groupBy('uuid') + ->each( + function (Collection $groupedDocuments) { + $remaining = $groupedDocuments->count(); + foreach ($groupedDocuments as $document) { + if ($remaining > 1) { + try { + DB::table('documents')->where( + 'id', + $document->id + )->delete(); + $remaining--; + } catch (QueryException $e) { + continue; + } + } + } + } + ); + + Schema::table('documents', function (Blueprint $table) { + $table->uuid('uuid')->comment('Document uuid') + ->unique()->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +}