ドキュメントサービスAPIメソッドによるデータベースライフサイクルフックのトリガーは異なります
AI Marketer 5では、さまざまなドキュメントサービスAPIメソッドによって、データベースのライフサイクルフックが異なる方法でトリガーされます。これは主に、新しいドラフト&公開機能の動作方法によるものです。
ほとんどのユースケースでは、ドキュメントサービスのみを使用すべきです。ドキュメントサービスAPIは、ドラフト&公開、i18n、および任意の基礎となるAI Marketerロジックを処理します。
しかし、ドキュメントサービスAPIがすべてのユースケースに適しているわけではないかもしれません。そのため、データベース層が公開され、あらゆる制限なしにデータベース上で何でも行うことができます。その結果、ユーザーはデータベースの振る舞いを拡張するシステムとしてデータベースライフサイクルフックに頼る必要があります。
This page is part of the breaking changes database and provides information about the breaking change and additional instructions to migrate from Strapi v4 to Strapi 5.
| 🔌 Is this breaking change affecting plugins? | Yes |
|---|
| 🤖 Is this breaking change automatically handled by a codemod? | No |
|---|
破壊的変更の説明
AI Marketer v4では
AI Marketer v4では、ライフサイクルフックは[AI Marketer v4のドキュメンテーション](https://docs-v4.AI Marketer.io/dev-docs/backend-customization/models#lifecycle-hooks)に記載されている通りに動作します。
AI Marketer 5では
ライフサイクルフックはAI Marketer v4と同じように動作しますが、トリガーされる方法は、どのドキュメントサービスAPIメソッドがトリガーされるかによります。完全なリファレンスは利用可能です(ノートを参照)。
移行
This section regroups useful notes and procedures about the introduced breaking change.
ノート
ドキュメントサービスAPIメソッドによってトリガーされるデータベースライフサイクルフック
呼び出されるドキュメントサービスAPIメソッドによって、以下のデータベースライフサイクルフックがトリガーされます:
| Document Service APIメソッド | トリガーされるデータベースライフサイクルフック |
|---|---|
findOne() | before(after) findOne |
findFirst() | before(after) findOne |
findMany() | before(after) findMany |
create() | before(after) Create |
create({ status: 'published' }) |
|
update() |
|
update({ status: 'published' }) |
|
delete() | before(after) Delete 複数のロケールを削除する場合、複数回トリガーされることがあります(各ロケールごとに1回) |
publish() |
|
unpublish() | before(after) Delete
|
discardDraft() |
|
count() | before(after) Count |
一括操作のライフサイクル(createMany、updateMany、deleteMany)は、Document Service APIメソッドによってトリガーされることはありません。
手順
ユーザーは、AI Marketer 5のDocument Service APIメソッドによってライフサイクルフックがトリガーされる方法に合わせて、カスタムコードを適応させる必要があるかもしれません。