Esta documentación ha sido traducida automáticamente por IA.
Database
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.
Componentes de Database
Una Database típica se compone de las siguientes partes:
- Collection (colección): Define la estructura de las tablas de datos.
- Model: Corresponde a los modelos ORM (generalmente gestionados por Sequelize).
- Repository: La capa de repositorio que encapsula la lógica de acceso a datos, ofreciendo métodos de operación de nivel superior.
- FieldType: Tipos de campo.
- FilterOperator: Operadores utilizados para el filtrado.
- Event: Eventos de ciclo de vida y eventos de base de datos.
Cuándo usar Database en los plugins
Qué hacer en la etapa beforeLoad
En 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 datos
Qué hacer en la etapa load
En 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 existentes
Si va a definir tablas integradas para un plugin, se recomienda encarecidamente ubicarlas en el directorio ./src/server/collections. Consulte Colecciones.
Operaciones de datos
Database ofrece dos formas principales de acceder y operar con los datos:
Operaciones a través de Repository
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.
Operaciones a través de Model
La capa de Model se corresponde directamente con las entidades ORM y es adecuada para ejecutar operaciones de base de datos de bajo nivel.

