Diese Dokumentation wurde automatisch von KI übersetzt.
Database ist ein wichtiger Bestandteil von Datenquellen (DataSource) vom Typ Datenbank. Jede datenbankbasierte Datenquelle verfügt über eine entsprechende Database-Instanz, die Sie über dataSource.db aufrufen können. Die Database-Instanz der Haupt-Datenquelle bietet zusätzlich den praktischen Alias app.db. Die Kenntnis der gängigen db-Methoden ist die Grundlage für die Entwicklung von serverseitigen Plugins.
Eine typische Database setzt sich aus den folgenden Teilen zusammen:
beforeLoad-PhaseIn dieser Phase sind Datenbankoperationen nicht erlaubt. Sie eignet sich für die Registrierung statischer Klassen oder das Abonnieren von Ereignissen.
db.registerFieldTypes() — Benutzerdefinierte Feldtypendb.registerModels() — Benutzerdefinierte Modellklassen registrierendb.registerRepositories() — Benutzerdefinierte Repository-Klassen registrierendb.registerOperators() — Benutzerdefinierte Filteroperatoren registrierendb.on() — Datenbankbezogene Ereignisse abonnierenload-PhaseIn dieser Phase sind alle vorhergehenden Klassendefinitionen und Ereignisse bereits geladen, sodass beim Laden von Datentabellen keine Abhängigkeiten fehlen oder übersehen werden.
db.defineCollection() — Neue Datentabellen definierendb.extendCollection() — Bestehende Datentabellenkonfigurationen erweiternWenn Sie integrierte Tabellen für Plugins definieren, empfiehlt es sich, diese im Verzeichnis ./src/server/collections abzulegen. Weitere Informationen finden Sie unter Sammlungen.
Die Database bietet zwei Hauptmethoden für den Datenzugriff und die Datenbearbeitung:
Die Repository-Schicht wird typischerweise verwendet, um Geschäftslogik wie Paginierung, Filterung, Berechtigungsprüfungen usw. zu kapseln.
Die Model-Schicht entspricht direkt den ORM-Entitäten und eignet sich für Datenbankoperationen auf niedrigerer Ebene.
| Phase | Datenbankoperationen erlaubt |
|---|---|
staticImport | Nein |
afterAdd | Nein |
beforeLoad | Nein |
load | Nein |
install | Ja |
beforeEnable | Ja |
afterEnable | Ja |
beforeDisable | Ja |
afterDisable | Ja |
remove | Ja |
handleSyncMessage | Ja |
| Phase | Datenbankoperationen erlaubt |
|---|---|
beforeLoad | Nein |
afterLoad | Nein |
beforeStart | Ja |
afterStart | Ja |
beforeInstall | Nein |
afterInstall | Ja |
beforeStop | Ja |
afterStop | Nein |
beforeDestroy | Ja |
afterDestroy | Nein |
beforeLoadPlugin | Nein |
afterLoadPlugin | Nein |
beforeEnablePlugin | Ja |
afterEnablePlugin | Ja |
beforeDisablePlugin | Ja |
afterDisablePlugin | Ja |
afterUpgrade | Ja |
| Phase | Datenbankoperationen erlaubt |
|---|---|
beforeSync | Nein |
afterSync | Ja |
beforeValidate | Ja |
afterValidate | Ja |
beforeCreate | Ja |
afterCreate | Ja |
beforeUpdate | Ja |
afterUpdate | Ja |
beforeSave | Ja |
afterSave | Ja |
beforeDestroy | Ja |
afterDestroy | Ja |
afterCreateWithAssociations | Ja |
afterUpdateWithAssociations | Ja |
afterSaveWithAssociations | Ja |
beforeDefineCollection | Nein |
afterDefineCollection | Nein |
beforeRemoveCollection | Nein |
afterRemoveCollection | Nein |