ACSD-67643: Doppelte Einträge, die bei geplanten Aktualisierungen in hochverschachtelten Kategorieumgebungen erstellt werden
Mit dem Patch ACSD-67643 wird das Problem behoben, dass doppelte Einträge bei geplanten Aktualisierungen in Umgebungen mit einer hohen Anzahl verschachtelter Kategorien erstellt werden. Dieser Patch ist verfügbar, wenn Quality Patches Tool (QPT) 1.1.71 installiert ist. Die Patch-ID ist ACSD-67643. Dieses Problem wird voraussichtlich in Adobe Commerce 2.4.9 behoben.
Betroffene Produkte und Versionen
Der Patch wird für die Adobe Commerce-Version erstellt:
- Adobe Commerce (alle Bereitstellungsmethoden) 2.4.8-p1
Kompatibel mit Adobe Commerce-Versionen:
- Adobe Commerce (alle Bereitstellungsmethoden) 2.4.8 - 2.4.8-p2
magento/quality-patches auf die neueste Version und überprüfen Sie die Kompatibilität auf der Seite Quality Patches Tool: Nach Patches suchen. Verwenden Sie die Patch-ID als Suchbegriff, um den Patch zu finden.Problem
Beim Erstellen geplanter Aktualisierungen für Umgebungen mit einer großen Anzahl verschachtelter Kategorien treten doppelte Einträge auf.
Schritte zur Reproduktion:
-
Beispieldaten generieren:
Verwenden Sie eine Datei mit Leistungsbefestigungen (z. B.:small.xml) mit Änderungen:
Categories: 2.500
Products: .000 -
Führen Sie den folgenden Befehl aus:
code language-bash bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml -
Nachdem Sie Produkte und Kategorien erstellt haben, stellen Sie sicher, dass alle Kategorien durch Ausführen von verankert sind:
code language-sql UPDATE catalog_category_entity_int SET value = 1 WHERE attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'is_anchor'); -
Führen Sie eine vollständige Neuindizierung aus.
-
Melden Sie sich beim Backend an und öffnen Sie die Categories.
-
Verschieben Sie Kategorie 2 nach Kategorie 1, um die Baumverschachtelung zu erhöhen.
-
Wechseln Sie zur am häufigsten verschachtelten Kategorie (z. B (Kategorie 2.1.1).
-
Erstellen Sie Geplantes Update und speichern Sie die Kategorie.
Erwartete Ergebnisse:
Die Kategorie wurde gespeichert.
Tatsächliche Ergebnisse:
Eine Fehler 500 tritt auf und die folgende Meldung wird in den Protokollen angezeigt:
Magento\Framework\DB\Adapter\DuplicateException:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '6-165' for key 'PRIMARY',
query was: INSERT INTO `temp_category_descendants_68a35aea273fc` (`category_id`, `descendant_id`)
SELECT `ce`.`entity_id` AS `category_id`, `ce2`.`entity_id` AS `descendant_id`
FROM `catalog_category_entity` AS `ce`
INNER JOIN `catalog_category_entity` AS `ce2` ON ce2.path LIKE CONCAT(ce.path, '/%')
Patch anwenden
Verwenden Sie je nach Bereitstellungsmethode die folgenden Links, um einzelne Patches anzuwenden:
- Adobe Commerce oder Magento Open Source On-Premise: Quality Patches Tool > im Quality Patches Tool
- Adobe Commerce in Cloud-Infrastruktur: Upgrades und Patches > Patches anwenden im Handbuch zu Commerce in Cloud-Infrastruktur
Verwandtes Lesen
Weitere Informationen zu Quality Patches Tool finden Sie unter:
- Quality Patches Tool: Ein Self-Service-Tool für hochwertige Patches im Tools-Handbuch