Migration Skrip Upgrade
Selama proses pengembangan dan update plugin NocoBase, struktur database atau konfigurasi plugin mungkin mengalami perubahan yang tidak kompatibel. Untuk memastikan upgrade berjalan dengan mulus, NocoBase menyediakan mekanisme Migration — menangani perubahan tersebut dengan menulis file migration.
Konsep Migration
Migration adalah skrip yang dieksekusi otomatis saat plugin di-upgrade, untuk menyelesaikan masalah berikut:
- Penyesuaian struktur tabel data (menambah field, memodifikasi tipe field, dll.)
- Migrasi data (seperti update batch nilai field)
- Update konfigurasi plugin atau logika internal
Waktu eksekusi Migration dibagi menjadi tiga jenis:
Membuat File Migration
File Migration ditempatkan di src/server/migrations/*.ts di direktori plugin. NocoBase menyediakan command create-migration untuk dengan cepat menggenerate file migration.
Parameter Opsional
Contoh
Path file migration yang dihasilkan adalah sebagai berikut:
Konten awal file:
appVersion digunakan untuk menandai versi yang ditargetkan upgrade, environment dengan versi yang lebih kecil dari yang ditentukan akan mengeksekusi migration ini.
Menulis Migration
Dalam file Migration, Anda dapat mengakses property dan API umum berikut melalui this, untuk memudahkan operasi database, plugin, dan instance aplikasi:
Property Umum
-
this.appInstance aplikasi NocoBase saat ini, dapat digunakan untuk mengakses service global, plugin, atau konfigurasi. -
this.dbInstance service database, menyediakan interface untuk operasi pada model (Tables). -
this.pluginInstance plugin saat ini, dapat digunakan untuk mengakses method kustom plugin. -
this.sequelizeInstance Sequelize, dapat langsung mengeksekusi SQL native atau operasi transaksi. -
this.queryInterfaceQueryInterface Sequelize, sering digunakan untuk memodifikasi struktur tabel, seperti menambah field, menghapus tabel, dll.
Contoh Penulisan Migration
Selain property umum yang tercantum di atas, Migration juga menyediakan lebih banyak API, untuk penggunaan detail lihat Migration API.
Memicu Migration
Eksekusi Migration dipicu oleh command nocobase upgrade:
Saat upgrade, sistem akan menentukan urutan eksekusi berdasarkan tipe Migration dan appVersion.
Test Migration
Dalam pengembangan plugin, disarankan menggunakan Mock Server untuk menguji apakah migration dieksekusi dengan benar, untuk menghindari kerusakan pada data nyata.
Menggunakan Mock Server dapat dengan cepat mensimulasikan skenario upgrade, dan memvalidasi urutan eksekusi Migration dan perubahan data.
Saran Praktik Pengembangan
- Memecah Migration Setiap upgrade sebaiknya menghasilkan satu file migration, menjaga atomisitas, untuk memudahkan troubleshooting.
- Menentukan Waktu Eksekusi
Pilih
beforeLoad,afterSync, atauafterLoadberdasarkan target operasi, untuk menghindari ketergantungan pada modul yang belum dimuat. - Perhatikan Kontrol Versi
Gunakan
appVersionuntuk memperjelas versi yang berlaku untuk migration, mencegah eksekusi berulang. - Cakupan Test Validasi migration di Mock Server terlebih dahulu, baru eksekusi upgrade di environment nyata.
Tautan Terkait
- Collections Tabel Data — Definisi struktur tabel data yang sering perlu disesuaikan dalam Migration
- Database Operasi Database — API operasi data melalui
this.dbdalam Migration - Plugin — Organisasi dan cara loading file Migration dalam plugin
- Command Command Line — Memicu migrasi melalui command
nocobase upgradedancreate-migration - Test Pengujian — Menggunakan Mock Server untuk menguji hasil eksekusi Migration
- Migration API — Referensi API lengkap class Migration

