ACSD-56741:使用自定义MySQL触发器解决数据库设置错误

ACSD-56741修补程序修复了以下问题:由于数据库中存在与索引和MView无关的自定义MySQL触发器,在setup:upgrade期间出现错误消息​ 尝试访问null ​类型的值的数组偏移。 安装Quality Patches Tool (QPT) 1.1.48时,此修补程序可用。 修补程序ID为ACSD-56741。 请注意,该问题计划在Adobe Commerce 2.5.0中修复

受影响的产品和版本

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

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

与Adobe Commerce版本兼容:

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

问题

由于数据库中的自定义MySQL触发器与索引和MView无关,因此在setup:upgrade期间出现错误消息​ 尝试访问类型为null ​的值上的数组偏移。

重现步骤

  1. 运行php bin/magento indexer:set-mode schedule

    code language-none
    DELIMITER //
    CREATE TRIGGER trg_catalog_category_entity_before_delete_umis BEFORE DELETE ON catalog_category_entity FOR EACH ROW
        -> BEGIN
        -> UPDATE ewave_navigation_menu_item_info as nit INNER JOIN ewave_navigation_menu_category_type as ncmi ON nit.id = ncmi.menu_item_id AND ncmi.category_id = OLD.entity_id SET nit.status = 0;
        -> END //
    
  2. 运行php bin/magento c:f

  3. 运行php bin/magento setup:upgrade

预期的结果

安装程序升级完成,没有出现错误。

实际结果

安装程序升级退出,并出现以下错误消息:

警告:正在尝试访问类型为null ​的值上的数组偏移。

应用修补程序

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

相关阅读

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

有关QPT中其他可用修补程序的信息,请参阅Quality Patches Tool指南中的Quality Patches Tool:搜索修补程序

recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3