Cette documentation a été traduite automatiquement par IA.
Database est un composant essentiel des sources de données de base de données (DataSource). Chaque source de données de base de données possède une instance Database correspondante, accessible via dataSource.db. L'instance de base de données de la source de données principale offre également l'alias pratique app.db. Bien connaître les méthodes courantes de db est fondamental pour le développement de plugins côté serveur.
Un Database typique se compose des éléments suivants :
beforeLoadÀ cette étape, les opérations de base de données ne sont pas autorisées. Elle est appropriée pour l'enregistrement de classes statiques ou l'écoute d'événements.
db.registerFieldTypes() — Types de champs personnalisésdb.registerModels() — Enregistrer des classes de modèles personnaliséesdb.registerRepositories() — Enregistrer des classes de dépôts personnaliséesdb.registerOperators() — Enregistrer des opérateurs de filtre personnalisésdb.on() — Écouter les événements liés à la base de donnéesloadÀ cette étape, toutes les définitions de classes et les événements précédents ont été chargés, de sorte que le chargement des tables de données ne présentera aucune omission.
db.defineCollection() — Définir de nouvelles tables de donnéesdb.extendCollection() — Étendre les configurations de tables de données existantesPour la définition des tables intégrées aux plugins, il est recommandé de les placer dans le répertoire ./src/server/collections. Pour plus de détails, consultez Collections.
Database offre deux méthodes principales pour accéder et manipuler les données :
La couche Repository est généralement utilisée pour encapsuler la logique métier, telle que la pagination, le filtrage, les vérifications de permissions, etc.
La couche Model correspond directement aux entités ORM et est adaptée aux opérations de base de données de plus bas niveau.
| Étape | Opérations de base de données autorisées |
|---|---|
staticImport | Non |
afterAdd | Non |
beforeLoad | Non |
load | Non |
install | Oui |
beforeEnable | Oui |
afterEnable | Oui |
beforeDisable | Oui |
afterDisable | Oui |
remove | Oui |
handleSyncMessage | Oui |
| Étape | Opérations de base de données autorisées |
|---|---|
beforeLoad | Non |
afterLoad | Non |
beforeStart | Oui |
afterStart | Oui |
beforeInstall | Non |
afterInstall | Oui |
beforeStop | Oui |
afterStop | Non |
beforeDestroy | Oui |
afterDestroy | Non |
beforeLoadPlugin | Non |
afterLoadPlugin | Non |
beforeEnablePlugin | Oui |
afterEnablePlugin | Oui |
beforeDisablePlugin | Oui |
afterDisablePlugin | Oui |
afterUpgrade | Oui |
| Étape | Opérations de base de données autorisées |
|---|---|
beforeSync | Non |
afterSync | Oui |
beforeValidate | Oui |
afterValidate | Oui |
beforeCreate | Oui |
afterCreate | Oui |
beforeUpdate | Oui |
afterUpdate | Oui |
beforeSave | Oui |
afterSave | Oui |
beforeDestroy | Oui |
afterDestroy | Oui |
afterCreateWithAssociations | Oui |
afterUpdateWithAssociations | Oui |
afterSaveWithAssociations | Oui |
beforeDefineCollection | Non |
afterDefineCollection | Non |
beforeRemoveCollection | Non |
afterRemoveCollection | Non |