ACSD-67643: Dubblettposter skapas under schemalagda uppdateringar i högkapslade kategorimiljöer
Korrigeringen ACSD-67643 åtgärdar ett problem där dubblettposter skapas under schemalagda uppdateringar i miljöer med ett stort antal kapslade kategorier. Den här korrigeringen är tillgänglig när Quality Patches Tool (QPT) 1.1.71 har installerats. Korrigerings-ID är ACSD-67643. Observera att problemet är planerat att åtgärdas i Adobe Commerce 2.4.9.
Berörda produkter och versioner
Korrigeringen har skapats för Adobe Commerce-version:
- Adobe Commerce (alla distributionsmetoder) 2.4.8-p1
Kompatibel med Adobe Commerce-versioner:
- Adobe Commerce (alla distributionsmetoder) 2.4.8 - 2.4.8-p2
magento/quality-patches-paketet till den senaste versionen och kontrollerar kompatibiliteten på Quality Patches Tool: Sök efter korrigeringsfiler . Använd patch-ID:t som söknyckelord för att hitta patchen.Problem
Dubblettposter inträffar när schemalagda uppdateringar skapas för miljöer som har ett stort antal kapslade kategorier.
Steg som ska återskapas:
-
Generera exempeldata:
Använd en prestandakorrigeringsfil (till exempel:small.xml) med ändringar:
Categories: 2,500
Products: 250,000 -
Kör följande kommando:
code language-bash bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml -
När du har skapat produkter och kategorier måste du se till att alla kategorier är ankare genom att köra:
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'); -
Kör en fullständig omindexering.
-
Logga in i serverdelen och öppna sidan Categories.
-
Flytta kategori 2 till kategori 1 om du vill öka trädkapslingen.
-
Gå till den mest kapslade kategorin (till exempel: Kategori 2.1.1).
-
Skapa en schemalagd uppdatering och spara kategorin.
Förväntade resultat:
Kategorin har sparats.
Faktiska resultat:
Ett Error 500 inträffar och följande meddelande visas i loggarna:
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, '/%')
Tillämpa korrigeringen
Använd följande länkar beroende på distributionsmetod för att tillämpa enskilda korrigeringsfiler:
- Lokal användning för Adobe Commerce eller Magento Open Source: Quality Patches Tool > Användning i guiden Quality Patches Tool
- Adobe Commerce om molninfrastruktur: Uppgraderingar och korrigeringar > Tillämpa korrigeringar i guiden för Commerce om molninfrastruktur
Relaterad läsning
Mer information om Quality Patches Tool finns i:
- Quality Patches Tool: Ett självbetjäningsverktyg för kvalitetspatchar i verktygshandboken