資料移轉工具疑難排解
本文提供執行資料移轉工具時可能發生的錯誤解決方案。
說明 description
受影響的環境
- Adobe Commerce版本1
- Adobe Commerce版本2
問題/症狀
- Source檔案/欄位未對應
- 類別在記錄中未對應
- 外部索引鍵限制失敗
- URL重寫重複
- 實體不符
- 未安裝Deltalog
解決方法 resolution
Source檔案/欄位未對應
錯誤訊息
- Source檔案未對應:
<EXTENSION_TABLE> - Source欄位未對應。 檔案:
<EXTENSION_TABLE>。 欄位:<EXTENSION_FIELD>
在極少數的情況下,訊息可能會提及Destination documents或Destination 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_table的field_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資料庫重新開始移轉程式。 這有助於確保移轉程式順暢無礙。