ACSD-68064: Duplicera poster som skapats under schemalagda uppdateringar i miljöer med djupt inkapslade kategorier
Korrigeringen ACSD-68064 åtgärdar ett problem där schemalagda uppdateringar i miljöer med ett stort antal kapslade kategorier resulterar i dubblettposter och förhindrar att kategorier sparas. Den här korrigeringen är tillgänglig när Quality Patches Tool (QPT) 1.1.72 har installerats. Korrigerings-ID är ACSD-68064. 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.7-p6
Kompatibel med Adobe Commerce-versioner:
- Adobe Commerce (alla distributionsmetoder) 2.4.7 - 2.4.7-p7
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
Om du skapar schemalagda uppdateringar i miljöer med ett stort antal kapslade kategorier resulterar det i dubblettposter, vilket leder till fel och det går inte att spara kategorin.
Steg som ska återskapas:
-
Installera en ren instans.
-
Ändra filen med prestandakorrigeringar (small.xml) så att den innehåller:
- Categories: 2500
- Products: 250,000
-
Generera data med kommandot:
code language-none bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml -
När du har skapat produkter och kategorier ser du till att alla kategorier anges som ankarpunkter genom att köra följande fråga:
code language-none UPDATE catalog_category_entity_int set value = 1 where attribute_id = (select attribute_id from eav_attribute where attribute_code = 'is_anchor'); -
Indexera om data.
-
Logga in på Admin-panelen och gå till Catalog > Categories.
-
Flytta kategori 2 under kategori 1 om du vill skapa en mer kapslad struktur.
-
Gå till en djupt inkapslad kategori, till exempel Kategori 2.1.1.
-
Skapa en Scheduled Update.
-
Klicka på Save.
Förväntade resultat:
Kategorin har sparats.
Faktiska resultat:
Ett fel inträffar och kategorin kan inte sparas. var/log/exception.log innehåller ett fel som liknar:
Exception #0 (Magento\Framework\DB\Adapter\DuplicateException): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '229-255' for key 'temp_category_descendants_619aaaaaaaaaa.PRIMARY', query was: INSERT INTO `temp_category_descendants_619aaaaaaaaaa` (`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, '/%') OR ce2.entity_id = ce.entity_id AND (ce2.created_in <= '1750287600' AND ce2.updated_in > '1750287600') WHERE ((ce.entity_id IN (4, 6, 7, 8, 10, 24, 25, 27, 30, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 48, 51, 54, 56, 57, 59, 60, 63, 64, 65, 66, 67 .......
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 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.