データの移行

開始する前に、次の手順を実行して準備します。

  1. アプリケーションサーバーに​ ファイルシステム所有者としてログインします。
  2. アプリケーション インストール ディレクトリに変更するか、システム 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接頭辞
  • INSERTUPDATEDELETE イベントトリガー。

例えば、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_inserttrg_sales_flat_order_after_updatetrg_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引数を使用します。 その場合、以前に移行したデータの重複を防ぐために、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>

詳しい情報と推奨事項については、このガイドの​ トラブルシューティング ​の節を参照してください。

次の移行手順

変更を移行

recommendation-more-help
commerce-operations-help-tools