拡張属性を持つ従来のデータの移行

従来のデータを移行する必要がある場合、または新しいデータを Adobe Commerce に保存する必要がある場合は、Adobeでは extension attributes を使用することをお勧めします。 拡張属性を使用して追加データを保存すると、次の利点があります。

  • 永続化するデータおよびデータベース構造を制御できます。これにより、データが正しい列タイプおよび適切なインデックスで保存されます。
  • Adobe Commerce のほとんどのエンティティは、拡張属性の使用をサポートしています。
  • 拡張属性は、ストレージに依存しないメカニズムで、プロジェクトに最適な場所にデータを柔軟に保存できます。

格納場所の 2 つの例は、データベース・テーブルと Redis です。 場所を選択する際に考慮すべき重要な事項は、場所によって複雑さが増すか、パフォーマンスに影響を与えるかです。

他の選択肢を検討する

GraphQL メッシュやAdobe App Builderなど、Adobe Commerce 環境以外のツールの使用を常に検討することが開発者にとって不可欠です。 これらのツールは、データへのアクセスを保持するのに役立ちますが、コアコマースアプリケーションやその基礎となるデータベーステーブルには影響しません。 このアプローチでは、API を通じてデータを公開します。 次に、データソースをApp Builder設定に追加します。 GraphQL Mesh を使用すると、これらのデータソースを組み合わせ、 従来のデータで説明されているように 1 つの応答を生成できます。

GraphQL メッシュについて詳しくは、GraphQL Mesh Gateway を参照してください。 App BuilderのAdobeについて詳しくは、App Builderの概要を参照してください。

コアテーブルまたはサードパーティのテーブルの変更

コア Adobe Commerce ードまたはサードパーティのモジュールデータベーステーブルを変更してデータを保存する場合は、次のガイドラインを使用して、安定性とパフォーマンスに対する影響を最小限に抑えます。

  • 新しい列のみを追加します。
  • 既存の列の type 値は変更しないでください。 例えば、独自のユースケースを満たすために integervarchar に変更しないでください。
  • EAV 属性テーブルには列を追加しないでください。 これらのテーブルには、ロジックと職責が既にオーバーロードされています。
  • テーブルを調整する前に、そのサイズを決定します。 大きなテーブルを変更するとデプロイメントに影響を与えるため、変更が適用されたときに数分または数時間の遅延が発生する可能性があります。

外部データベーステーブルの変更に関するベストプラクティス

Adobeでは、コアデータベーステーブルまたはサードパーティのテーブルに列を追加する場合、次の手順に従うことをお勧めします。

  1. 更新対象を表す名前を使用して、名前空間にモジュールを作成します。

    例:app/code/YourCompany/Customer

  2. 適切なファイルを作成してモジュールを有効にします( モジュールの作成

  3. etc フォルダー内に db_schema.xml というファイルを作成し、適切な変更を加えます。

    必要に応じて、db_schema_whitelist.json ファイルを生成します。 詳しくは、 宣言型スキーマを参照してください。