ACSD-67643: entradas duplicadas creadas durante actualizaciones programadas en entornos de categoría anidados
El parche ACSD-67643 corrige el problema en el que se crean entradas duplicadas durante las actualizaciones programadas en entornos con un alto número de categorías anidadas. Esta revisión está disponible cuando está instalado Quality Patches Tool (QPT) 1.1.71. El ID del parche es ACSD-67643. Este problema está programado para solucionarse en Adobe Commerce 2.4.9.
Productos y versiones afectados
El parche se ha creado para la versión de Adobe Commerce:
- Adobe Commerce (todos los métodos de implementación) 2.4.8-p1
Compatible con versiones de Adobe Commerce:
- Adobe Commerce (todos los métodos de implementación) 2.4.8 - 2.4.8-p2
magento/quality-patches a la última versión y compruebe la compatibilidad en la página Quality Patches Tool: buscar parches . Utilice el ID de parche como palabra clave de búsqueda para localizar el parche.Problema
Las entradas duplicadas se producen al crear actualizaciones programadas para entornos que tienen un gran número de categorías anidadas.
Pasos a seguir:
-
Generar datos de ejemplo:
Usar un archivo de correcciones de rendimiento (por ejemplo:small.xml) con modificaciones:
Categories: 2.500
Products: 250.000 -
Ejecute el siguiente comando:
code language-bash bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml -
Después de crear productos y categorías, asegúrese de que todas las categorías sean anclajes ejecutando:
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'); -
Ejecute un reindexado completo.
-
Inicie sesión en el servidor y abra la página Categories.
-
Mueva Categoría 2 a Categoría 1 para aumentar el anidamiento del árbol.
-
Vaya a la categoría más anidada (por ejemplo: Categoría 2.1.1).
-
Cree una actualización programada y guarde la categoría.
Resultados esperados:
La categoría se ha guardado correctamente.
Resultados reales:
Se produce un error 500 y se muestra el siguiente mensaje en los registros:
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, '/%')
Aplicar el parche
Para aplicar parches individuales, utilice los siguientes vínculos según el método de implementación:
- Adobe Commerce o Magento Open Source local: Quality Patches Tool > Uso en la guía Quality Patches Tool
- Adobe Commerce en la infraestructura de la nube: Actualizaciones y parches > Aplicar parches en la guía Commerce en la infraestructura de la nube
Lectura relacionada
Para obtener más información sobre Quality Patches Tool, consulte:
- Quality Patches Tool: herramienta de autoservicio para parches de calidad en la guía Herramientas