ACP2E-5009:内容暂存迁移会创建无效的更新并减慢setup:upgrade

ACP2E-5009修补程序修复了以下问题:将Magento Open Source类别和产品日期迁移到Adobe Commerce中的Content Staging计划更新的数据修补程序为类别创建空的计划更新,当空日期值保留在上一次运行时,跳过所有产品日期,并对包含多个类别和商店视图的目录执行setup:upgrade操作非常慢。 安装Quality Patches Tool (QPT) 1.1.84时,此修补程序可用。 修补程序ID为ACP2E-5009。 请注意,此问题计划在Adobe Commerce 2.4.10中修复。

受影响的产品和版本

为Adobe Commerce版本创建了修补程序:

  • Adobe Commerce(所有部署方法) 2.4.8-p3

与Adobe Commerce版本兼容:

  • Adobe Commerce(所有部署方法) 2.4.5 - 2.4.9
NOTE
该修补程序可能适用于具有新Quality Patches Tool发行版本的其他版本。 要检查修补程序是否与您的Adobe Commerce版本兼容,请将magento/quality-patches包更新到最新版本,并在Quality Patches Tool:搜索修补程序页面上检查兼容性。 使用修补程序ID作为搜索关键字来查找修补程序。

问题

在Adobe Commerce中将Magento Open Source类别和产品日期迁移到Content Staging计划更新的数据修补程序为类别创建空的计划更新,当上次运行中有空日期值时跳过所有产品日期,并对包含许多类别和商店视图的目录使setup:upgrade速度非常慢。

先决条件:

您即将将Magento Open Source升级到Adobe Commerce。

NOTE
Magento Open Source没有内容暂存,因此当Adobe Commerce安装在Magento Open Source数据库上时,MigrateCatalogProducts数据修补程序会将类别和产品日期转换为内容暂存计划更新。

要在Adobe Commerce上再次运行数据修补程序,请从patch_list表中删除该修补程序:

DELETE FROM patch_list WHERE patch_name = 'Magento\\CatalogStaging\\Setup\\Patch\\Data\\MigrateCatalogProducts';

重现步骤:

从Magento Open Source迁移:

  1. 在Magento Open Source上,在多个类别的​ Schedule Design Update ​部分中设置​ Schedule Update From ​和​To。 将​ To ​保留为空,并使用过去和未来的日期。
  2. 在多个产品上,在​ Advanced Pricing ​中设置一个包含​ Special Price From ​和​ To ​的​Special Price,并使用过去和未来日期设置​ Set Product as New From ​和​To。
  3. 在此Magento Open Source数据库上安装Adobe Commerce并运行bin/magento setup:upgrade。
  4. 转到​Content > Content Staging > Dashboard,然后查看为类别和产品创建的计划更新。 打开类别和产品,并选中它们的​ Scheduled Changes ​框。
  5. 再次运行数据修补程序:将其从patch_list表中删除(请参阅先决条件),运行bin/magento setup:upgrade,然后检查var/log/exception.log。

性能:

  1. 在Adobe Commerce上,创建180个商店视图和8,000个类别。
  2. 运行time bin/magento setup:upgrade并记录经过的时间。
  3. 从patch_list表中删除数据修补程序(请参阅先决条件),然后重新运行time bin/magento setup:upgrade。

预期的结果:

从Magento Open Source迁移:

  1. 每个日期为​ Schedule Design Update ​的类别都有一个包含相同日期的类别的计划更新。
  2. 每个日期为​ Special Price ​或​ Set Product as New ​的产品都会有具有相同值和日期的计划更新。
  3. 没有日期的类别和产品没有计划的更新。
  4. 当数据修补程序再次运行时,将忽略空的产品日期值,并且不会记录任何错误。

性能:
第二个setup:upgrade运行快速完成。 数据修补程序跳过没有计划设计日期的类别。

实际结果:

从Magento Open Source迁移:

  1. 为类别创建的计划更新不包含类别。
  2. 当数据修补程序再次运行时,它将在上次运行遗留的第一个空产品日期值处停止,并且不迁移任何产品日期。

性能:

  1. 第二次setup:upgrade运行大约需要47分钟,而第一次运行需要14秒。
  2. 数据修补程序会为每个商店视图加载每个类别(180个商店视图和8,000个类别大约加载140万个类别),并且不会进行任何更改。 在大型目录上部署可能需要几个小时。

应用修补程序

要应用单独的修补程序,请根据您的部署方法使用以下链接:

相关阅读

要了解有关Quality Patches Tool的更多信息,请参阅:

recommendation-more-help
commerce-operations-help-tools