Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris
Database adalah komponen penting dari sumber data bertipe database (DataSource). Setiap sumber data bertipe database memiliki instance Database yang sesuai, yang dapat diakses melalui dataSource.db. Instance database dari sumber data utama juga menyediakan alias app.db yang mudah digunakan. Memahami metode umum db adalah dasar untuk menulis plugin sisi server.
Database yang umum terdiri dari bagian-bagian berikut:
field.beforeLoadPada tahap ini, operasi database tidak diizinkan. Cocok untuk pendaftaran kelas statis atau mendengarkan event.
db.registerFieldTypes() — Tipe field kustomdb.registerModels() — Mendaftarkan kelas model kustomdb.registerRepositories() — Mendaftarkan kelas repositori kustomdb.registerOperators() — Mendaftarkan operator filter kustomdb.on() — Mendengarkan event terkait databaseloadPada tahap ini, semua definisi kelas dan event sebelumnya telah dimuat, sehingga pemuatan tabel data tidak akan mengalami kekurangan atau kelalaian.
db.defineCollection() — Mendefinisikan tabel data barudb.extendCollection() — Memperluas konfigurasi tabel data yang sudah adaUntuk mendefinisikan tabel bawaan plugin, lebih disarankan untuk menempatkannya di direktori ./src/server/collections. Lihat koleksi.
Database menyediakan dua cara utama untuk mengakses dan mengoperasikan data:
Lapisan Repository umumnya digunakan untuk merangkum logika bisnis, seperti paginasi, pemfilteran, pemeriksaan izin, dll.
Lapisan Model secara langsung sesuai dengan entitas ORM, cocok untuk menjalankan operasi database tingkat lebih rendah.
| Tahap | Operasi Database Diizinkan |
|---|---|
staticImport | Tidak |
afterAdd | Tidak |
beforeLoad | Tidak |
load | Tidak |
install | Ya |
beforeEnable | Ya |
afterEnable | Ya |
beforeDisable | Ya |
afterDisable | Ya |
remove | Ya |
handleSyncMessage | Ya |
| Tahap | Operasi Database Diizinkan |
|---|---|
beforeLoad | Tidak |
afterLoad | Tidak |
beforeStart | Ya |
afterStart | Ya |
beforeInstall | Tidak |
afterInstall | Ya |
beforeStop | Ya |
afterStop | Tidak |
beforeDestroy | Ya |
afterDestroy | Tidak |
beforeLoadPlugin | Tidak |
afterLoadPlugin | Tidak |
beforeEnablePlugin | Ya |
afterEnablePlugin | Ya |
beforeDisablePlugin | Ya |
afterDisablePlugin | Ya |
afterUpgrade | Ya |
| Tahap | Operasi Database Diizinkan |
|---|---|
beforeSync | Tidak |
afterSync | Ya |
beforeValidate | Ya |
afterValidate | Ya |
beforeCreate | Ya |
afterCreate | Ya |
beforeUpdate | Ya |
afterUpdate | Ya |
beforeSave | Ya |
afterSave | Ya |
beforeDestroy | Ya |
afterDestroy | Ya |
afterCreateWithAssociations | Ya |
afterUpdateWithAssociations | Ya |
afterSaveWithAssociations | Ya |
beforeDefineCollection | Tidak |
afterDefineCollection | Tidak |
beforeRemoveCollection | Tidak |
afterRemoveCollection | Tidak |