Commerce Data Exporter フィードで更新されない修正データと、変更ログテーブルを含む cron ログエラーが存在しません
この記事では、Data Exporter Mview サブスクリプションで間違ったビュー ID を使用することで発生したデータ同期の問題を修正する方法について説明します。 Mview サブスクリプションは、データベーステーブルの変更を追跡するために使用されます。
影響を受ける製品とバージョン
カスタムコードがデータ書き出し機能(commerce-data-exporter
または saas-exporter
)に適用されたAdobe Commerce インスタンス。 このエラーは、インストールされている SaaS データエクスポートのバージョンが 103.3.0 以降で、コードが catalog_data_exporter_products
インデックスを直接参照する場合に発生します。
問題
マーチャントは、データフィード Data Exporter ーブルのカタログにデータ更新がないことに気付き、cron のジョブのログに次のエラーが表示される場合があります。
[2024-05-27T19:00:04.627604+00:00] report.ERROR: Cron Job indexer_clean_all_changelogs has an error: Table catalog_data_exporter_products_cl does not exist. Statistics: {"sum":0,"count":1,"realmem":0,"emalloc":0,"realmem_start":305135616,"emalloc_start":283210384} [] []
原因:
Commerce Data Export バージョン 103.3.0 リリースでフィードテーブル、インデックス、変更ログテーブルの名前が変更されたので、Commerce Data Export 拡張機能を使用するカスタム拡張機能の Mview サブスクリプションが正しく機能しない場合があります。
この場合、テーブルが存在しません エラーは、catalog_data_exporter
テーブル名が cde_products_feed
に変更され、Data Exporter Mview サブスクリプションで古い名前を参照するカスタムコードがあるために発生します。
解決策
カスタマイズした拡張機能で、Mview 設定ファイル(./etc/mview.xml
)を編集して、catalog_data_exporter_products
テーブル名を cde_products_feed
に変更します。
次の例は、Mview 購読によって追跡されるテーブルを指定するコードを示しています。
<view id="cde_products_feed" class="Magento\CatalogDataExporter\Model\Indexer\ProductFeedIndexer" group="indexer">
<subscriptions>
<table name="custom_table" entity_column="product_id" />
</subscriptions>
</view>
関連資料
- SaaS Services 用Adobe Commerce データ書き出しガイドの SaaS データ書き出し拡張機能のリリースノート
- Commerce実装プレイブックの データベーステーブルを変更する際のベストプラクティス