データを移行
開始する前に、次の手順に従って準備を行います。
- アプリケーションサーバーに ファイルシステムの所有者としてログインします。
- アプリケーションのインストールディレクトリに移動するか、システムデ
PATH
クトリに追加されていることを確認します。
詳しくは、 最初の手順の節を参照してください。
データ移行コマンドの実行
データの移行を開始するには、次を実行します。
bin/magento migrate:data [-r|--reset] [-a|--auto] {<path to config.xml>}
ここで、
-
[-a|--auto]
は、整合性チェックエラーが発生した場合に移行が停止するのを防ぐオプション引数です。 -
[-r|--reset]
は、最初から移行を開始するオプションの引数です。 この引数を使用して、移行をテストできます。 -
{<path to config.xml>}
はconfig.xml
への絶対ファイルシステムパスです。この引数は必須です
この手順では、Magento1Data Migration Tool ータベースのマイグレーション・テーブル用に、追加のテーブルとトリガーが作成されます。 これらは、 増分/差分移行手順で使用されます。 追加のテーブルには、最終的な移行の実行後に変更されたレコードに関する情報が含まれます。 データベーストリガーは、これらの追加テーブルへの入力に使用します。したがって、特定のテーブルに対して新しい処理が実行されている(レコードが追加/変更/削除されている)場合、これらのデータベーストリガーによって、この処理に関する情報が追加のテーブルに保存されます。 差分マイグレーションプロセスを実行すると、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 ;;
--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>
詳細と推奨事項については、このガイドの トラブルシューティングの節を参照してください。