ACSD-60989:透過宣告式結構描述修改具有外部索引鍵的資料行會在MariaDB上造成錯誤

ACSD-60989修補程式修正了透過MariaDB上的宣告式結構描述以外部索引鍵修改資料行,會導致安裝程式因外部索引鍵限制而發生升級錯誤的問題。 安裝Quality Patches Tool (QPT) 1.1.78時,即可使用此修補程式。 修補程式ID為ACSD-60989。 請注意,此問題已在Adobe Commerce 2.4.8中修正。

受影響的產品和版本

已為Adobe Commerce版本建立修補程式:

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

與Adobe Commerce版本相容:

  • Adobe Commerce (所有部署方法) >=2.4.4 <2.4.8
NOTE
此修補程式可能適用於發行版本為Quality Patches Tool的其他版本。 若要檢查修補程式是否與您的Adobe Commerce版本相容,請將magento/quality-patches套件更新至最新版本,並在Quality Patches Tool上檢查相容性:搜尋修補程式頁面。 使用修補程式ID作為搜尋關鍵字,以尋找修補程式。

問題

由於安裝程式升級期間發生外部索引鍵條件約束錯誤,透過MariaDB上的宣告式結構描述修改具有外部索引鍵的資料行失敗。

要再現的步驟

  1. 前往「Admin > Stores > Settings > Order Status」。

  2. 按一下​Create New Status,在所有欄位中輸入​test,然後儲存。

  3. 按一下​Assign Status to State

    1. 將​ Order Status ​設為​test
    2. 將​ Order State ​設為​已接收
    3. 儲存指派。
  4. 建立、註冊及啟用自訂模組,並將下列專案新增至db_schema.xml

    code language-none
    <?xml version="1.0"?>
    <schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Setup/etc/db_schema.xsd">
        <table name="sales_order_status">
            <column xsi:type="varchar" name="status" nullable="false" length="64" comment="Order Status"/>
        </table>
        <table name="sales_order_status_state">
            <column xsi:type="varchar" name="status" nullable="false" length="64" comment="Order Status"/>
        </table>
        <table name="sales_order_status_label">
            <column xsi:type="varchar" name="status" nullable="false" length="64" comment="Order Status"/>
        </table>
    </schema>
    
  5. 執行以下命令:

    code language-none
    bin/magento setup:upgrade
    

預期結果

安裝程式升級順利完成,且沒有外部索引鍵限制錯誤。

實際結果

安裝程式升級期間發生錯誤:

Unable to apply patch Vendor\Sales\Setup\Patch\Schema\DataPatch for module Vendor_Sales.
Original exception message:
SQLSTATE[HY000]: General error: 1833 Cannot change column 'status': used in a foreign key constraint
'SALES_ORDER_STATUS_LABEL_STATUS_SALES_ORDER_STATUS_STATUS'
of table 'sales_order_status_label'

套用修補程式

若要套用個別修補程式,請根據您的部署方法使用下列連結:

相關閱讀

若要進一步瞭解Quality Patches Tool,請參閱:

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