ACSD-68064: 깊게 중첩된 범주가 있는 환경에서 예약된 업데이트 중에 생성된 중복 항목입니다.
ACSD-68064 패치는 중첩 범주가 많은 환경에서 예약된 업데이트를 만들면 항목이 중복되고 범주가 저장되지 않는 문제를 해결합니다. 이 패치는 Quality Patches Tool (QPT) 1.1.72가 설치되어 있을 때 사용할 수 있습니다. 패치 ID는 ACSD-68064입니다. 이 문제는 Adobe Commerce 2.4.9에서 수정됩니다.
영향을 받는 제품 및 버전
Adobe Commerce 버전에 대한 패치가 만들어졌습니다.
- Adobe Commerce(모든 배포 방법) 2.4.7-p6
Adobe Commerce 버전과 호환:
- Adobe Commerce(모든 배포 방법) 2.4.7 - 2.4.7-p7
magento/quality-patches 패키지를 최신 버전으로 업데이트하고 Quality Patches Tool에서 호환성을 확인합니다. 패치 검색 페이지. 패치 ID를 검색 키워드로 사용하여 패치를 찾습니다.문제
중첩된 범주가 많은 환경에서 예약된 업데이트를 만들면 항목이 중복되어 오류가 발생하고 범주가 저장되지 않습니다.
재현 단계:
-
클린 인스턴스를 설치합니다.
-
다음을 포함하도록 성능 고정장치 파일(small.xml)을 수정합니다.
- Categories: 2500
- Products: 250,000
-
다음 명령을 사용하여 데이터를 생성합니다.
code language-none bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml -
제품 및 범주를 만든 후 다음 쿼리를 실행하여 모든 범주가 앵커로 설정되었는지 확인하십시오.
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'); -
데이터를 다시 색인화합니다.
-
관리 패널에 로그인하고 Catalog > Categories(으)로 이동합니다.
-
Category 1에서 Category 2을(를) 이동하여 더 중첩된 구조를 만듭니다.
-
깊게 중첩된 범주로 이동합니다(예: 범주 2.1.1).
-
Scheduled Update 만들기
-
Save을(를) 클릭합니다.
예상 결과:
범주가 저장되었습니다.
실제 결과:
오류가 발생하여 범주가 저장되지 않습니다. var/log/exception.log에 다음과 유사한 오류가 있습니다.
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 .......
패치 적용
개별 패치를 적용하려면 배포 방법에 따라 다음 링크를 사용합니다.
- Adobe Commerce 또는 Magento Open Source 온-프레미스: Quality Patches Tool 가이드의 > 사용량Quality Patches Tool
- 클라우드 인프라의 Adobe Commerce: Commerce on Cloud Infrastructure 안내서의 업그레이드 및 패치 > 패치 적용.
관련 읽기
Quality Patches Tool에 대한 자세한 내용은 다음을 참조하세요.