データの移行
開始する前に、次の手順を実行して準備します。
- アプリケーションサーバーに ファイルシステム所有者としてログインします。
- アプリケーション インストール ディレクトリに変更するか、システム
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はMagento 1 データベースの移行テーブル用に追加のテーブルとトリガーを作成します。 これらは、増分/差分移行ステップで使用されます。 追加のテーブルには、最終的な移行実行後に変更されたレコードに関する情報が含まれます。 データベース・トリガーは、これらの追加テーブルにデータを入力するために使用されます。そのため、特定のテーブルに対して新しい操作が実行されている場合(レコードが追加/変更/削除されている場合)、これらのデータベース・トリガーは、この操作に関する情報を追加テーブルに保存します。 差分移行プロセスを実行すると、Data Migration Toolはこれらのテーブルに未処理のレコードを確認し、必要なコンテンツをMagento 2 データベースに移行します。
各新しいテーブルには次のものが含まれます。
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 ;;
--reset引数を使用します。 その場合、以前に移行したデータの重複を防ぐために、Magento 2 データベースダンプを復元することをお勧めします。可能性のある一貫性エラー
実行中に、Data Migration Toolは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>
詳しい情報と推奨事項については、このガイドの トラブルシューティング の節を参照してください。