Esta documentación ha sido traducida automáticamente por IA.
Database es un componente fundamental de las fuentes de datos (DataSource) de tipo base de datos. Cada fuente de datos de este tipo tiene una instancia Database correspondiente, a la que puede acceder a través de dataSource.db. La instancia de base de datos de la fuente de datos principal también ofrece el práctico alias app.db. Familiarizarse con los métodos comunes de db es esencial para desarrollar plugins del lado del servidor.
Una Database típica se compone de las siguientes partes:
Database en los pluginsbeforeLoadEn esta etapa, no se permiten operaciones de base de datos. Es adecuada para el registro de clases estáticas o la escucha de eventos.
db.registerFieldTypes() — Tipos de campo personalizadosdb.registerModels() — Registrar clases de modelo personalizadasdb.registerRepositories() — Registrar clases de repositorio personalizadasdb.registerOperators() — Registrar operadores de filtro personalizadosdb.on() — Escuchar eventos relacionados con la base de datosloadEn esta etapa, todas las definiciones de clases y eventos previos ya se han cargado, por lo que la carga de las tablas de datos no tendrá dependencias faltantes u omitidas.
db.defineCollection() — Definir nuevas tablas de datosdb.extendCollection() — Extender configuraciones de tablas de datos existentesSi va a definir tablas integradas para un plugin, se recomienda encarecidamente ubicarlas en el directorio ./src/server/collections. Consulte Colecciones.
Database ofrece dos formas principales de acceder y operar con los datos:
La capa de Repository se utiliza habitualmente para encapsular la lógica de negocio, como la paginación, el filtrado, las comprobaciones de permisos, etc.
La capa de Model se corresponde directamente con las entidades ORM y es adecuada para ejecutar operaciones de base de datos de bajo nivel.
| Etapa | ¿Operaciones de base de datos permitidas? |
|---|---|
staticImport | No |
afterAdd | No |
beforeLoad | No |
load | No |
install | Sí |
beforeEnable | Sí |
afterEnable | Sí |
beforeDisable | Sí |
afterDisable | Sí |
remove | Sí |
handleSyncMessage | Sí |
| Etapa | ¿Operaciones de base de datos permitidas? |
|---|---|
beforeLoad | No |
afterLoad | No |
beforeStart | Sí |
afterStart | Sí |
beforeInstall | No |
afterInstall | Sí |
beforeStop | Sí |
afterStop | No |
beforeDestroy | Sí |
afterDestroy | No |
beforeLoadPlugin | No |
afterLoadPlugin | No |
beforeEnablePlugin | Sí |
afterEnablePlugin | Sí |
beforeDisablePlugin | Sí |
afterDisablePlugin | Sí |
afterUpgrade | Sí |
| Etapa | ¿Operaciones de base de datos permitidas? |
|---|---|
beforeSync | No |
afterSync | Sí |
beforeValidate | Sí |
afterValidate | Sí |
beforeCreate | Sí |
afterCreate | Sí |
beforeUpdate | Sí |
afterUpdate | Sí |
beforeSave | Sí |
afterSave | Sí |
beforeDestroy | Sí |
afterDestroy | Sí |
afterCreateWithAssociations | Sí |
afterUpdateWithAssociations | Sí |
afterSaveWithAssociations | Sí |
beforeDefineCollection | No |
afterDefineCollection | No |
beforeRemoveCollection | No |
afterRemoveCollection | No |