Database
Database adalah komponen inti dari data source tipe database (DataSource). Setiap data source tipe database memiliki instance Database yang sesuai, dapat diakses melalui dataSource.db. Instance database data source utama juga memiliki alias yang lebih singkat app.db. Memahami method umum dari db adalah dasar untuk menulis plugin server.
Komponen Database
Sebuah Database tipikal terdiri dari komponen berikut:
- Collection: Mendefinisikan struktur tabel data.
- Model: Sesuai dengan model ORM (biasanya dikelola oleh Sequelize).
- Repository: Layer repository yang mengenkapsulasi logika akses data, menyediakan method operasi tingkat lebih tinggi.
- FieldType: Tipe field.
- FilterOperator: Operator yang digunakan untuk filter.
- Event: Event siklus hidup dan event database.
Waktu Penggunaan dalam Plugin
Hal yang Cocok Dilakukan pada Tahap beforeLoad
Pada tahap ini operasi database belum dapat dilakukan, cocok untuk registrasi class statis atau listen event.
db.registerFieldTypes()— Mendaftarkan tipe field kustomdb.registerModels()— Mendaftarkan class model kustomdb.registerRepositories()— Mendaftarkan class repository kustomdb.registerOperators()— Mendaftarkan operator filter kustomdb.on()— Mendengarkan event terkait database
Hal yang Cocok Dilakukan pada Tahap load
Pada tahap ini semua definisi class dan event prasyarat sudah selesai dimuat, kemudian memuat tabel data tidak akan ada yang terlewat atau hilang.
db.defineCollection()— Mendefinisikan tabel data barudb.extendCollection()— Memperluas konfigurasi tabel data yang ada
Namun jika untuk mendefinisikan tabel built-in plugin, lebih disarankan ditempatkan di direktori ./src/server/collections, lihat Collections Tabel Data.
Operasi Data
Database menyediakan dua cara utama untuk mengakses dan mengoperasikan data:
Operasi melalui Repository
Layer Repository biasanya digunakan untuk mengenkapsulasi logika bisnis, seperti pagination, filter, pemeriksaan hak akses, dll.
Operasi melalui Model
Layer Model langsung sesuai dengan entitas ORM, cocok untuk operasi database tingkat lebih rendah.
Pada Tahap Apa Operasi Database Dapat Dilakukan?
Siklus Hidup Plugin
Event App
Event/Hook Database
Tautan Terkait
- Collections Tabel Data — Mendefinisikan atau memperluas struktur tabel data dengan kode
- DataSourceManager Manajemen Data Source — Mengelola beberapa data source dan instance database-nya
- Context Konteks Request — Mendapatkan instance
dbdalam request - Plugin — Siklus hidup class plugin, member method, dan objek
app - Event — Listen dan handle event level aplikasi dan database

