移轉資料

開始之前,請採取下列步驟進行準備:

  1. 以下列身分登入您的應用程式伺服器: 檔案系統擁有者.
  2. 變更應用程式安裝目錄,或確認已將其新增至您的系統 PATH.

請參閱 第一步 區段以取得更多詳細資料。

執行資料移轉命令

若要開始移轉資料,請執行:

bin/magento migrate:data [-r|--reset] [-a|--auto] {<path to config.xml>}

其中:

  • [-a|--auto] 是選用引數,可防止移轉在遇到完整性檢查錯誤時停止。

  • [-r|--reset] 是選用引數,會從頭開始移轉。 您可以使用此引數來測試移轉。

  • {<path to config.xml>} 是絕對檔案系統路徑 config.xml;此引數為必要項

在此步驟中, Data Migration Tool 為Magento1資料庫中的移轉表格建立其他表格和觸發程式。 它們用於 增量/差異 移轉步驟。 其他表格包含最終移轉執行後變更記錄的相關資訊。 資料庫觸發程式用於填入這些額外的表格,因此,如果正在特定表格上執行新作業(新增/修改/移除記錄),這些資料庫觸發程式會將此作業的相關資訊儲存至額外的表格。 當我們執行差異移轉程式時, Data Migration Tool 檢查這些表格中是否有未處理的記錄,並將必要的內容移轉到Magento2資料庫。

每個新表格都包含:

  • m2_cl 前置詞
  • INSERTUPDATEDELETE 事件觸發程式。

例如,對於 sales_flat_order 此 Data Migration Tool 建立:

  • m2_cl_sales_flat_order 表格:

    code language-sql
    CREATE TABLE `m2_cl_sales_flat_order` (
      `entity_id` int(11) NOT NULL COMMENT 'Entity_id',
      `operation` text COMMENT 'Operation',
      `processed` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Processed',
      PRIMARY KEY (`entity_id`)
    ) COMMENT='m2_cl_sales_flat_order';
    
  • trg_sales_flat_order_after_inserttrg_sales_flat_order_after_updatetrg_sales_flat_order_after_delete 觸發器:

    code language-sql
    DELIMITER ;;
    CREATE TRIGGER `trg_sales_flat_order_after_insert` AFTER INSERT ON `sales_flat_order`
      FOR EACH ROW
      BEGIN
       INSERT INTO m2_cl_sales_flat_order (`entity_id`, `operation`) VALUES (NEW.entity_id, 'INSERT')ON DUPLICATE KEY UPDATE operation = 'INSERT';
      END
    ;;
    
    DELIMITER ;;
    CREATE TRIGGER `trg_sales_flat_order_after_update` AFTER UPDATE ON `sales_flat_order`
      FOR EACH ROW
      BEGIN
       INSERT INTO m2_cl_sales_flat_order (`entity_id`, `operation`) VALUES (NEW.entity_id, 'UPDATE') ON DUPLICATE KEY UPDATE operation = 'UPDATE';
      END
    ;;
    
    DELIMITER ;;
    CREATE TRIGGER `trg_sales_flat_order_after_delete` AFTER DELETE ON `sales_flat_order`
      FOR EACH ROW
      BEGIN
       INSERT INTO m2_cl_sales_flat_order (`entity_id`, `operation`) VALUES (OLD.entity_id, 'DELETE')ON DUPLICATE KEY UPDATE operation = 'DELETE';
      END
    ;;
    
NOTE
此 Data Migration Tool 在執行時儲存其目前的進度。 如果發生錯誤或使用者介入導致其停止執行,「工具」會以最後已知的良好狀態繼續進度。 強制執行 Data Migration Tool 若要從頭開始執行,請使用 --reset 引數。 在這種情況下,建議您還原Magento2資料庫傾印,以防止重複先前移轉的資料。

可能的一致性錯誤

執行時, Data Migration Tool 可能會報告Magento1和Magento2資料庫之間的不一致,並顯示如下的訊息:

  • Source documents are missing: <EXTENSION_TABLE_1>,<EXTENSION_TABLE_2>,...<EXTENSION_TABLE_N>
  • Destination documents are missing: <EXTENSION_TABLE_1>,<EXTENSION_TABLE_2>,...<EXTENSION_TABLE_N>
  • Source documents are not mapped: <EXTENSION_TABLE_1>,<EXTENSION_TABLE_2>,...<EXTENSION_TABLE_N>
  • Destination documents are not mapped: <EXTENSION_TABLE_1>,<EXTENSION_TABLE_2>,...<EXTENSION_TABLE_N>
  • Source fields are missing. Document: <EXTENSION_TABLE>. Fields: <FIELD_1>,<FIELD_2>...<FIELD_N>
  • Destination fields are missing. Document: <EXTENSION_TABLE>. Fields: <FIELD_1>,<FIELD_2>...<FIELD_N>
  • Source fields are not mapped. Document: <EXTENSION_TABLE>. Fields: <FIELD_1>,<FIELD_2>...<FIELD_N>
  • Destination fields are not mapped. Document: <EXTENSION_TABLE>. Fields: <FIELD_1>,<FIELD_2>...<FIELD_N>
  • Mismatch of data types. Source document: <EXTENSION_TABLE>. Fields: <FIELD_1>,<FIELD_2>...<FIELD_N>
  • Mismatch of data types. Destination document: <EXTENSION_TABLE>. Fields: <FIELD_1>,<FIELD_2>...<FIELD_N>
  • Incompatibility in data. Source document: <EXTENSION_TABLE>. Field: <FIELD>. Error: <ERROR_MESSAGE>
  • Incompatibility in data. Destination document: <EXTENSION_TABLE>. Field: <FIELD>. Error: <ERROR_MESSAGE>

請參閱 疑難排除 區段,以取得詳細資訊和建議。

下一個移轉步驟

移轉變更

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