資料移轉工具疑難排解

本文提供執行資料移轉工具時可能發生的錯誤解決方案。

說明 description

受影響的環境

  • Adobe Commerce版本1
  • Adobe Commerce版本2

問題/症狀

  • Source檔案/欄位未對應
  • 類別在記錄中未對應
  • 外部索引鍵限制失敗
  • URL重寫重複
  • 實體不符
  • 未安裝Deltalog

解決方法 resolution

Source檔案/欄位未對應

錯誤訊息

  • Source檔案未對應: < EXTENSION_TABLE>
  • Source欄位未對應。 檔案: < EXTENSION_TABLE> 。 欄位: < EXTENSION_FIELD>

在極少數的情況下,訊息可能會提及Destination documentsDestination fields,而不是來源訊息。

原因

有些Adobe Commerce版本1實體(大多數來自擴充功能)不存在於Adobe Commerce版本2資料庫中。

出現此訊息是因為Data Migration Tool執行內部測試,以驗證​來源 (Adobe Commerce 1)與​目的地 (Adobe Commerce 2)資料庫之間的資料表與欄位是否一致。

可能的解決方案

  • Commerce Marketplace安裝對應的Adobe Commerce 2擴充功能。 如果衝突的資料源自新增自身資料庫結構元素的擴充功能,則相同擴充功能的Adobe Commerce 2版本可能會將這類元素新增至目的地(Adobe Commerce 2)資料庫,藉此修正問題。

  • 執行工具時使用-a引數來自動解決錯誤並防止移轉停止。

  • 設定工具以忽略有問題的資料。 若要忽略資料庫實體,請將<ignore>標籤新增至map.xml檔案中的實體,如下所示:

    code language-none
    ...
        <source>
            <document_rules>
                ...
                <!-- Ignore `sales_flat_invoice_grid` table -->
                <ignore>
                    <document>sales_flat_invoice_grid</document>
                </ignore>
                <!-- Ignore `address_id` field of `sales_flat_order_address` table -->
                <ignore>
                    <field>sales_flat_order_address.address_id</field>
                </ignore>
                ...
            </document_rules>
        </source>
        ...
    

警告:

在透過對應檔案忽略實體或使用-a選項之前,請確定您的Adobe Commerce 2存放區中不需要受影響的資料。

類別未對應到記錄

錯誤訊息

類別<延伸模組/類別名稱>未在記錄< attribute_id=196>​中進行對應

原因

在開發人員檔案中的EAV移轉步驟期間,在Adobe Commerce 2程式碼基底中找不到Adobe Commerce 1程式碼基底的類別。 在大多數情況下,遺失的類別屬於延伸模組

可能的解決方案

  • 安裝對應的Adobe Commerce 2擴充功能。
  • 忽略導致問題的屬性。 為此,請在eav-attribute-groups.xml.dist檔案中將屬性新增到ignore群組。
  • 使用class-map.xml.dist檔案新增類別對應。

外部索引鍵條件約束失敗

錯誤訊息文字

來源資料庫上的外部索引鍵< KEY_NAME>條件約束失敗。 孤立記錄ID: < child_table> .<中的< id_1>< id_2> field_id>< parent_table>​中沒有參考的記錄

原因

child_tablefield_id所指向的parent_table中有遺漏的資料庫記錄。

可能的解決方案

如果您不需要記錄,請從child_table刪除記錄。

若要保留記錄,請修改資料移轉工具的config.xml以停用Data Integrity Step

URL重寫中有個重複專案

There are duplicates in URL rewrites:
Request path: towel.html Store ID: 2 Target path: catalog/product/view/id/10
Request path: towel.html Store ID: 2 Target path: catalog/product/view/id/12

原因

URL重寫中的Target path必須由Request path + Store ID的唯一配對指定。 此錯誤報告使用相同Request path + Store ID對的兩個專案,以及兩個不同的Target path值。

可能的解決方案

啟用您config.xml檔案中的auto_resolve_urlrewrite_duplicates選項。

此設定會將雜湊字串新增至URL重寫的衝突記錄,並在命令列介面中顯示解析結果。

實體不相符

錯誤訊息

檔案中的實體不相符: <檔案> Source: < COUNT_ITEMS_IN_SOURCE_TABLE>目的地: < COUNT_ITEMS_IN_DESTINATION_TABLE>

原因

在「磁碟區檢查」步驟期間發生錯誤。 這表示檔案的Adobe Commerce 2資料庫記錄計數與Adobe Commerce 1中的不同。

客戶在移轉期間下訂單時會發生遺失記錄。

可能的解決方案

Delta模式執行資料移轉工具以傳輸增量變更。

未安裝Deltalog

錯誤訊息

未安裝< TABLE_NAME>的​Deltalog

原因

此錯誤發生於資料變更的增量移轉 (在開發人員檔案中)期間。 這表示在Adobe Commerce 1資料庫中找不到deltalog表格(前置詞為m2_cl_*)。 工具會在資料移轉 (在開發人員檔案中)期間安裝這些表格,以及追蹤變更並填入傳遞表格的資料庫觸發程式。

發生錯誤的一個原因,可能是您嘗試從即時Adobe Commerce 1存放區的​ 復本 ​移轉,而不是從即時存放區本身移轉。 當您從從未移轉過的即時Adobe Commerce 1存放區製作副本時,該副本不會包含完成差異移轉所需的觸發程式和其他額外資料表,因此移轉會失敗。 資料移轉工具不會比較AC1和AC2的DB以移轉差異。 此工具會改用第一次移轉期間安裝的觸發器和差異表格,以執行後續差異移轉。 在這種情況下,即時Adobe Commerce 1 DB的復本將不會包含資料移轉工具用來執行移轉的觸發器和刪除表格。

可能的解決方案

建議您從Adobe Commerce 1資料庫復本測試移轉程式,以修正移轉問題。 修正副本上的問題後,從即時Adobe Commerce 1資料庫重新開始移轉程式。 這有助於確保移轉程式順暢無礙。

相關閱讀

在Commerce實作行動手冊中修改資料庫表格的最佳實務

recommendation-more-help
experience-cloud-kcs-help-kbarticles