magento2迁移指南-迁移数据

7天成为Magento系统架构师,现在开始学习Magento全栈开发!

《Magento2.X企业级开发实战》

迁移数据

开始之前:例行准备

  1. 文件系统所有者身份登录 Magento 服务器。
  2. 切换到 Magento 安装目录或确保它已添加到您的系统 PATH。

有关更多详细信息,请参阅“第一步”部分。

运行数据迁移命令

要开始迁移数据,请运行:

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

在哪里:

  • [-a|--auto] 是一个可选参数,用于防止迁移在遇到完整性检查错误时停止。
  • [-r|--reset]是一个从头开始迁移的可选参数。您可以使用此参数来测试迁移。
  • {<path to config.xml>}是到的绝对文件系统路径config.xml;这个参数是必需的

在此步骤中,数据迁移工具会为 Magento 1 数据库中的迁移表创建额外的表和触发器。它们将用于增量/增量迁移步骤。附加表包含有关最终迁移执行后更改记录的信息。数据库触发器用于填充这些额外表,因此如果正在对特定表执行新操作(添加/修改/删除记录),这些数据库触发器会将有关此操作的信息保存到额外表中。当我们运行增量迁移过程时,数据迁移工具会检查这些表中是否有未处理的记录,并将必要的内容迁移到 Magento 2 数据库中。

每个新表将有:

  • m2_cl 字首
  • INSERTUPDATE,DELETE事件触发。

例如,对于sales_flat_order数据迁移工具创建:

  • m2_cl_sales_flat_order 桌子: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_update,trg_sales_flat_order_after_delete触发: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 ;;

数据迁移工具在运行时保存其当前进度。如果错误或用户干预使其停止运行,则该工具会在上次已知的良好状态下恢复进度。要强制数据迁移工具从头开始运行,请使用--reset参数。在这种情况下,我们建议您恢复 Magento 2 数据库转储以防止复制以前迁移的数据。

可能的一致性错误

在运行时,数据迁移工具可能会报告 Magento 1 和 Magento 2 数据库之间的不一致,并显示如下消息:

  • 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>

有关更多信息和建议,请参阅本指南的故障排除部分。

如无特殊说明或标注,任何个人或组织,复制、转载、采集本站内容请注明:
本文来源于:【Magento中文网】,并添加本文地址链接。
如未按上述操作复制或转载,本站有权追究法律责任。
若本站内容侵犯了原著者的合法权益,可联系我们进行处理。