From 2dfda1ea26a5a6423040459759ff3a66f3efc401 Mon Sep 17 00:00:00 2001 From: Christoph Wurst Date: Wed, 12 Mar 2025 13:05:37 +0100 Subject: [PATCH] fix(db): Create replacement index where original index is missing Signed-off-by: Christoph Wurst --- core/Command/Db/AddMissingIndices.php | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/core/Command/Db/AddMissingIndices.php b/core/Command/Db/AddMissingIndices.php index ec36400d291e9..eec0aedce1119 100644 --- a/core/Command/Db/AddMissingIndices.php +++ b/core/Command/Db/AddMissingIndices.php @@ -86,14 +86,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int if ($schema->hasTable($toReplaceIndex['tableName'])) { $table = $schema->getTable($toReplaceIndex['tableName']); - $allOldIndicesExists = true; - foreach ($toReplaceIndex['oldIndexNames'] as $oldIndexName) { - if (!$table->hasIndex($oldIndexName)) { - $allOldIndicesExists = false; - } - } - - if (!$allOldIndicesExists) { + if ($table->hasIndex($toReplaceIndex['newIndexName'])) { continue; } @@ -110,8 +103,10 @@ protected function execute(InputInterface $input, OutputInterface $output): int } foreach ($toReplaceIndex['oldIndexNames'] as $oldIndexName) { - $output->writeln('Removing ' . $oldIndexName . ' index from the ' . $table->getName() . ' table'); - $table->dropIndex($oldIndexName); + if ($table->hasIndex($oldIndexName)) { + $output->writeln('Removing ' . $oldIndexName . ' index from the ' . $table->getName() . ' table'); + $table->dropIndex($oldIndexName); + } } if (!$dryRun) {