迁移数据

在开始之前,请执行以下步骤进行准备:

  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