データ移行ツールのトラブルシューティング

この記事では、データ移行ツールの実行時に発生する可能性のあるエラーの解決策を提供します。

説明 description

影響を受ける環境

  • Adobe Commerce バージョン 1
  • Adobe Commerce バージョン 2

問題/症状

  • Source ドキュメント/フィールドがマッピングされていません
  • クラスがレコードにマッピングされていません
  • 外部キーの制約が失敗する
  • URL書き換えの重複
  • エンティティの不一致
  • Deltalogがインストールされていません

解決策 resolution

Source ドキュメント/フィールドがマッピングされていません

エラーメッセージ

  • Source ドキュメントがマッピングされていません:< EXTENSION_TABLE>
  • Source フィールドがマッピングされていません。 文書:< EXTENSION_TABLE>。 フィールド:< EXTENSION_FIELD>

まれに、メッセージでソースではなくDestination documentsまたはDestination fieldsが表示されることがあります。

原因

一部のAdobe Commerce バージョン 1 エンティティは、ほとんどの場合、拡張機能に属するもので、Adobe Commerce バージョン 2 データベースには存在しません。

このメッセージは、Data Migration Toolが内部テストを実行して、テーブルとフィールドが​source (Adobe Commerce 1)と​destination (Adobe Commerce 2)のデータベース間で一貫性があることを確認するために表示されます。

考えられる解決策

  • 対応するAdobe Commerce 2拡張機能をCommerce Marketplaceからインストールします。 競合するデータが独自のデータベース構造要素を追加する拡張機能から発生している場合、同じ拡張機能のAdobe Commerce 2版は、そのような要素を宛先(Adobe Commerce 2)データベースに追加する可能性があり、問題を修正します。

  • ツールの実行時に-a引数を使用して、エラーを自動解決し、移行が停止するのを防ぎます。

  • 問題のあるデータを無視するようにツールを設定します。 データベースエンティティを無視するには、次のように、map.xml ファイルのエンティティに<ignore> タグを追加します。

    code language-none
    ...
        <source>
            <document_rules>
                ...
                <!-- Ignore `sales_flat_invoice_grid` table -->
                <ignore>
                    <document>sales_flat_invoice_grid</document>
                </ignore>
                <!-- Ignore `address_id` field of `sales_flat_order_address` table -->
                <ignore>
                    <field>sales_flat_order_address.address_id</field>
                </ignore>
                ...
            </document_rules>
        </source>
        ...
    

警告:

マップファイルまたは-a オプションを使用してエンティティを無視する前に、影響を受けるデータがAdobe Commerce 2 ストアに必要ないことを確認してください。

クラスがレコード にマッピングされていません

エラーメッセージ

クラス <の拡張機能/クラス名>は、レコード <のattribute_id=196>​にマッピングされていません

原因

Adobe Commerce 1 コードベースのクラスは、開発者向けドキュメントのEAV移行手順中にAdobe Commerce 2 コードベースで見つかりませんでした。 ほとんどの場合、欠落しているクラスは拡張機能に属しています。

考えられる解決策

  • 対応するAdobe Commerce 2拡張機能をインストールします。
  • 問題の原因となる属性を無視します。 このために、eav-attribute-groups.xml.dist ファイルのignore グループに属性を追加します。
  • class-map.xml.dist ファイルを使用してクラスマッピングを追加します。

外部キー制約が失敗しました

エラーメッセージのテキスト

ソース データベースで​ 外部キー< KEY_NAME>制約が失敗しました。 孤立レコード ID : < id_1>< id_2><件のchild_table> .<) field_id>には、<個のparent_table> ​で参照されているレコードがありません

原因

child_tablefield_idが指しているparent_tableにデータベース レコードがありません。

解決策

レコードが必要ない場合は、child_tableからレコードを削除します。

レコードを保持するには、データ移行ツールのconfig.xmlを変更してData Integrity Stepを無効にします。

URLの書き換えに重複があります

There are duplicates in URL rewrites:
Request path: towel.html Store ID: 2 Target path: catalog/product/view/id/10
Request path: towel.html Store ID: 2 Target path: catalog/product/view/id/12

原因

URL書き換え内のTarget pathは、Request path + Store IDの一意のペアで指定する必要があります。 このエラーは、同じRequest path + Store ID ペアを使用し、2つの異なるTarget path値を持つ2つのエントリを報告します。

解決策

config.xml ファイルでauto_resolve_urlrewrite_duplicates オプションを有効にします。

この設定では、URL書き換えの競合レコードにハッシュ文字列を追加し、コマンドラインインターフェイスに解決結果を表示します。

エンティティの不一致

エラーメッセージ

文書内のエンティティの不一致:< DOCUMENT> Source: < COUNT_ITEMS_IN_SOURCE_TABLE>宛先:< COUNT_ITEMS_IN_DESTINATION_TABLE>

原因

このエラーは、ボリュームチェック手順の実行中に発生します。 つまり、ドキュメントのAdobe Commerce 2 データベースレコード数は、Adobe Commerce 1と同じではありません。

顧客が移行中に注文を行うと、欠落したレコードが発生します。

解決策

データ移行ツールをDelta モードで実行して、増分変更を転送します。

Deltalogはインストールされていません

エラーメッセージ

< TABLE_NAME>の​Deltalogがインストールされていません

原因

このエラーは、データへの変更の増分移行 (開発者向けドキュメント)中に発生します。 つまり、(プレフィックス m2_cl_*を含む) deltalog テーブルがAdobe Commerce 1 データベースに見つかりませんでした。 これらのテーブルは、data migration (開発者向けドキュメント)の間にインストールされます。また、変更を追跡してdeltalog テーブルを入力するデータベーストリガーもインストールされます。

このエラーの原因の1つは、ライブストア自体からではなく、ライブAdobe Commerce 1 ストアの​ コピー ​から移行しようとしていることです。 移行されていないライブ Adobe Commerce 1 ストアからコピーを作成する場合、コピーには差分移行を完了するために必要なトリガーと追加の差分テーブルが含まれていないため、移行は失敗します。 データ移行ツールは、違いを移行するためにAC1とAC2のDBを比較しません。 代わりに、最初の移行時にインストールされたトリガーとdeltalog テーブルを使用して、後続のdelta移行を実行します。 このような場合、ライブ Adobe Commerce 1 DBのコピーには、Data Migration Toolが移行を実行するために使用するトリガーとdeltalog テーブルは含まれません。

解決策

移行の問題を修正するために、Adobe Commerce 1 データベースのコピーから移行プロセスをテストすることをお勧めします。 コピーの問題を修正した後、ライブのAdobe Commerce 1 データベースから移行プロセスを再度開始します。 これにより、移行プロセスをスムーズに進めることができます。

関連トピックス

Commerce実装プレイブックのデータベーステーブルを修正するためのベストプラクティス ​

recommendation-more-help
experience-cloud-kcs-help-kbarticles