迁移数据
在开始之前,请执行以下步骤进行准备:
- 以文件系统所有者的身份登录到您的应用程序服务器。
- 更改到应用程序安装目录,或确保将其添加到您的系统
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
前缀INSERT
、UPDATE
、DELETE
事件触发器。
例如,对于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_insert
、trg_sales_flat_order_after_update
、trg_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