Ця документація була автоматично перекладена штучним інтелектом.
Об'єкт Database є важливою складовою джерел даних типу "база даних" (DataSource). Кожне джерело даних такого типу має відповідний екземпляр Database, доступ до якого можна отримати через dataSource.db. Екземпляр бази даних основного джерела даних також надає зручний псевдонім app.db. Ознайомлення зі стандартними методами db є основою для написання серверних плагінів.
DatabaseТиповий об'єкт Database складається з таких частин:
Collection): Визначає структуру таблиці даних.Model): Відповідає моделям ORM (зазвичай керується Sequelize).Repository): Рівень репозиторію, який інкапсулює логіку доступу до даних, надаючи методи для операцій вищого рівня.FieldType): Типи полів.FilterOperator): Оператори, що використовуються для фільтрації.Event): Події життєвого циклу та події бази даних.Database у плагінахbeforeLoadНа цьому етапі операції з базою даних заборонені. Він підходить для реєстрації статичних класів або прослуховування подій.
— для визначення власних типів полів — для реєстрації власних класів моделей — для реєстрації власних класів репозиторіїв — для реєстрації власних операторів фільтрації — для прослуховування подій, пов'язаних з базою данихloadНа цьому етапі вже завантажені всі попередні визначення класів та події, тому завантаження таблиць даних відбудеться без пропущених або відсутніх залежностей.
— для визначення нових таблиць даних — для розширення конфігурацій існуючих таблиць данихЯкщо ви визначаєте вбудовані таблиці для плагіна, рекомендується розміщувати їх у каталозі ./src/server/collections. Детальніше дивіться у розділі Колекції.
Об'єкт Database надає два основні способи доступу та маніпуляції даними:
RepositoryРівень репозиторію зазвичай використовується для інкапсуляції бізнес-логіки, такої як пагінація, фільтрація, перевірка дозволів тощо.
ModelРівень моделі безпосередньо відповідає сутностям ORM і підходить для виконання низькорівневих операцій з базою даних.
| Етап | Дозволені операції з базою даних |
|---|---|
staticImport | Ні |
afterAdd | Ні |
beforeLoad | Ні |
load | Ні |
install | Так |
beforeEnable | Так |
afterEnable | Так |
beforeDisable | Так |
afterDisable | Так |
remove | Так |
handleSyncMessage | Так |
| Етап | Дозволені операції з базою даних |
|---|---|
beforeLoad | Ні |
afterLoad | Ні |
beforeStart | Так |
afterStart | Так |
beforeInstall | Ні |
afterInstall | Так |
beforeStop | Так |
afterStop | Ні |
beforeDestroy | Так |
afterDestroy | Ні |
beforeLoadPlugin | Ні |
afterLoadPlugin | Ні |
beforeEnablePlugin | Так |
afterEnablePlugin | Так |
beforeDisablePlugin | Так |
afterDisablePlugin | Так |
afterUpgrade | Так |
| Етап | Дозволені операції з базою даних |
|---|---|
beforeSync | Ні |
afterSync | Так |
beforeValidate | Так |
afterValidate | Так |
beforeCreate | Так |
afterCreate | Так |
beforeUpdate | Так |
afterUpdate | Так |
beforeSave | Так |
afterSave | Так |
beforeDestroy | Так |
afterDestroy | Так |
afterCreateWithAssociations | Так |
afterUpdateWithAssociations | Так |
afterSaveWithAssociations | Так |
beforeDefineCollection | Ні |
afterDefineCollection | Ні |
beforeRemoveCollection | Ні |
afterRemoveCollection | Ні |