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: Search for patches page で互換性を確認します。 パッチ ID を検索キーワードとして使用して、パッチを見つけます。問題
ネストされたカテゴリが多数ある環境でスケジュールされた更新を作成すると、エントリが重複し、エラーが発生してカテゴリの保存に失敗します。
再現手順 :
-
クリーンなインスタンスをインストールします。
-
パフォーマンス器具ファイル(small.xml)を次のように修正します。
- Categories: 2500
- Products: 億ドル
-
次のコマンドを使用してデータを生成します。
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 に移動します。
-
カテゴリ 1 の下の カテゴリ 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 ガイドの アップグレードとパッチ / パッチの適用」を参照してください。
関連資料
Quality Patches Tool について詳しくは、以下を参照してください。
- Quality Patches Tool: 『ツールガイド』にあるクオリティパッチ セルフサービスツール。