ACSD-67643:ネストの高いカテゴリ環境で、スケジュールされた更新時に重複エントリが作成される
ACSD-67643 パッチでは、ネストされたカテゴリが多数ある環境で、スケジュールされた更新時に重複エントリが作成される問題が修正されています。 このパッチは、Quality Patches Tool (QPT) 1.1.71 がインストールされている場合に使用できます。 パッチ ID は ACSD-67643 です。 この問題はAdobe Commerce 2.4.9 で修正される予定であることに注意してください。
影響を受ける製品とバージョン
Adobe Commerce バージョン用のパッチが作成されます。
- Adobe Commerce(すべてのデプロイメント方法) 2.4.8-p1
Adobe Commerce バージョンとの互換性:
- Adobe Commerce(すべてのデプロイメント方法) 2.4.8 - 2.4.8-p2
magento/quality-patches パッケージを最新バージョンに更新し、Quality Patches Tool: Search for patches page で互換性を確認します。 パッチ ID を検索キーワードとして使用して、パッチを見つけます。問題
ネストされたカテゴリが多数ある環境のスケジュールされた更新を作成すると、重複したエントリが発生します。
再現手順 :
-
サンプルデータを生成:
修正を加えたパフォーマンス フィクスチャ ファイル(small.xmlなど)を使用します。
Categories: 2,500
Products: 億ドル -
次のコマンドを実行します。
code language-bash bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml -
製品とカテゴリを作成したら、次のコマンドを実行して、すべてのカテゴリがアンカーであることを確認します。
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'); -
完全な再インデックスを実行します。
-
バックエンドにログインし、Categories ページを開きます。
-
カテゴリ 2 を カテゴリ 1 に移動して、ツリーのネストを増やします。
-
最もネストされたカテゴリに移動します(例:カテゴリ 2.1.1)。
-
スケジュールされた更新 を作成して、カテゴリを保存します。
期待される結果 :
カテゴリが正常に保存されました。
実際の結果 :
エラー 500 が発生し、次のメッセージがログに表示されます。
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, '/%')
パッチの適用
個々のパッチを適用するには、デプロイメント方法に応じて、次のリンクを使用します。
- Adobe CommerceまたはMagento Open Source オンプレミス:Quality Patches Tool > 使用状況 Quality Patches Tool ガイドの
- クラウドインフラストラクチャー上のAdobe Commerce: アップグレードとパッチ適用 クラウドインフラストラクチャー上のCommerce ガイド
関連資料
Quality Patches Tool について詳しくは、以下を参照してください。
- Quality Patches Tool:品質向上パッチを適用するためのセルフサービス ツール(『ツールガイド』)