Эта документация была автоматически переведена ИИ.
Database — это важная часть источников данных (DataSource) типа "база данных". Каждый источник данных типа "база данных" имеет соответствующий экземпляр Database, доступ к которому можно получить через dataSource.db. Экземпляр базы данных основного источника данных также предоставляет удобный псевдоним app.db. Знакомство с общими методами db является основой для написания серверных плагинов.
Типичный Database состоит из следующих частей:
beforeLoadНа этом этапе операции с базой данных не допускаются. Он подходит для регистрации статических классов или прослушивания событий.
db.registerFieldTypes() — Регистрация пользовательских типов полейdb.registerModels() — Регистрация пользовательских классов моделейdb.registerRepositories() — Регистрация пользовательских классов репозиториевdb.registerOperators() — Регистрация пользовательских операторов фильтрацииdb.on() — Прослушивание событий, связанных с базой данныхloadНа этом этапе все предыдущие определения классов и события уже загружены, поэтому при загрузке таблиц данных не будет пропущенных или отсутствующих зависимостей.
db.defineCollection() — Определение новых таблиц данныхdb.extendCollection() — Расширение существующих конфигураций таблиц данныхЕсли вы определяете встроенные таблицы для плагина, рекомендуется размещать их в директории ./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 | Нет |