Tip
このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
Database
Database は、データベースタイプのデータソース(DataSource)の重要な構成要素です。各データベースタイプのデータソースには、対応する Database インスタンスがあり、dataSource.db を介してアクセスできます。メインのデータソースのデータベースインスタンスは、便利な app.db というエイリアスも提供しています。db の一般的なメソッドに慣れておく ことは、サーバーサイドのプラグインを作成する上で基本となります。
Database の構成要素
一般的な Database は、以下の要素で構成されています。
- コレクション:データテーブルの構造を定義します。
- モデル:ORM のモデルに対応します(通常、Sequelize によって管理されます)。
- リポジトリ:データアクセスロジックをカプセル化するリポジトリ層で、より高度な操作メソッドを提供します。
- フィールドタイプ:フィールドの型です。
- フィルター演算子:フィルタリングに使用される演算子です。
- イベント:ライフサイクルイベントとデータベースイベントです。
プラグインでの使用タイミング
beforeLoad フェーズで推奨される処理
このフェーズではデータベース操作はできません。静的クラスの登録やイベントリスニングに適しています。
db.registerFieldTypes()— カスタムフィールドタイプdb.registerModels()— カスタムモデルクラスの登録db.registerRepositories()— カスタムリポジトリクラスの登録db.registerOperators()— カスタムフィルター演算子の登録db.on()— データベース関連イベントのリスニング
load フェーズで推奨される処理
このフェーズでは、すべての先行するクラス定義とイベントがロード済みのため、データテーブルをロードしても欠落や漏れが発生することはありません。
db.defineCollection()— 新しいデータテーブルの定義db.extendCollection()— 既存のデータテーブル設定の拡張
プラグインの組み込みテーブルを定義する場合は、./src/server/collections ディレクトリに配置することをお勧めします。詳細については、コレクション を参照してください。
データ操作
Database は、データをアクセスおよび操作するための2つの主要な方法を提供します。
リポジトリを介した操作
リポジトリ層は通常、ページネーション、フィルタリング、権限チェックなどのビジネスロジックをカプセル化するために使用されます。
モデルを介した操作
モデル層は ORM エンティティに直接対応しており、より低レベルのデータベース操作の実行に適しています。

