Daten migrieren
Bevor Sie beginnen, führen Sie die folgenden Schritte aus, um Folgendes vorzubereiten:
- Melden Sie sich bei Ihrem Anwendungs-Server als „Dateisystembesitzer“.
- Wechseln Sie zum Installationsverzeichnis der Anwendung oder stellen Sie sicher, dass es zum
PATH
hinzugefügt wird.
Weitere Informationen finden Sie AbschnittSchritte .
Ausführen des Datenmigrationsbefehls
Um mit der Datenmigration zu beginnen, führen Sie Folgendes aus:
bin/magento migrate:data [-r|--reset] [-a|--auto] {<path to config.xml>}
Dabei gilt:
-
[-a|--auto]
ist ein optionales Argument, das verhindert, dass die Migration angehalten wird, wenn Fehler bei der Integritätsprüfung auftreten. -
[-r|--reset]
ist ein optionales Argument, das die Migration von Anfang an startet. Sie können dieses Argument zum Testen der Migration verwenden. -
{<path to config.xml>}
ist der absolute Dateisystempfad zuconfig.xml
. Dieses Argument ist erforderlich
In diesem Schritt erstellt der Data Migration Tool zusätzliche Tabellen und Trigger für die Migrationstabellen in der Magento 1-Datenbank. Sie werden im Migrationsschritt inkrementell/delta verwendet. Zusätzliche Tabellen enthalten Informationen zu geänderten Datensätzen nach der endgültigen Ausführung der Migration. Datenbanktabellen werden zum Ausfüllen dieser zusätzlichen Trigger Trigger verwendet. Wenn also ein neuer Vorgang für eine bestimmte Tabelle ausgeführt wird (ein Datensatz wird hinzugefügt/geändert/entfernt), speichern diese Datenbanktabellen Informationen über diesen Vorgang in der zusätzlichen Tabelle. Wenn wir einen Delta-Migrationsprozess ausführen, prüft der Data Migration Tool diese Tabellen auf die nicht verarbeiteten Datensätze und migriert die erforderlichen Inhalte in die Magento 2-Datenbank.
Jede neue Tabelle enthält:
m2_cl
INSERT
,UPDATE
,DELETE
Ereignis-Trigger.
Für den sales_flat_order
erstellt der Data Migration Tool beispielsweise:
-
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
Trigger: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 ;;
--reset
. In diesem Fall empfehlen wir, den Magento 2-Datenbank-Dump wiederherzustellen, um das Duplizieren zuvor migrierter Daten zu verhindern.Mögliche Konsistenzfehler
Während der Ausführung meldet der Data Migration Tool möglicherweise Inkonsistenzen zwischen Magento 1- und Magento 2-Datenbanken und zeigt Meldungen wie die folgenden an:
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>
Weitere Informationen Empfehlungen findenim Abschnitt „Fehlerbehebung“ dieses Handbuchs.