Tampilan
Migrasi Sequelize
Lokasi & cara kerja
- Folder:
migrations/ - Jumlah: 47 file migrasi
- Rentang tanggal: 2022-06-27 → 2024-08-07
- Tool: Sequelize CLI (
npx sequelize-cli) - Helper:
helpers/migrations/common-migration.helper.js— mengaktifkan ekstensi PostgreSQLuuid-osspdan menyediakan default UUID.
Konfigurasi koneksi migrasi mengikuti config/config.js (lewat helpers/config.helper.js), sama seperti runtime aplikasi.
Perintah umum
bash
# Jalankan semua migrasi yang belum diterapkan
npx sequelize-cli db:migrate
# Cek status migrasi
npx sequelize-cli db:migrate:status
# Rollback migrasi terakhir
npx sequelize-cli db:migrate:undo
# Membuat migrasi baru
npx sequelize-cli migration:generate --name nama-migrasiMigrasi di production
Repository ini melayani production dengan paid customer. Selalu backup database sebelum menjalankan migrasi di production, uji di staging terlebih dahulu, dan pastikan migrasi reversible (punya down yang benar). Beberapa migrasi down di repo ini hanya meng-comment perubahan (tidak benar-benar reversible) — perhatikan saat rollback.
Pola penamaan
| Pola | Contoh |
|---|---|
YYYYMMDDHHMMSS-create-<entity>.js | 20220627025052-create-users.js |
YYYYMMDDHHMMSS-create_table-<Entity>.js | 20220819010301-create_table-TViewCompanyMailUsages.js |
YYYYMMDDHHMMSS-alter_table-<Entity>.js | 20230117230303-alter_table-TransCompanies.js |
YYYYMMDDHHMMSS-alter-table-<entity>.js | 202402010635200-alter-table-transcompany-invoice.js |
Komposisi
| Jenis | Jumlah | Tujuan |
|---|---|---|
| Create table | ~29 | Skema awal seluruh entitas inti |
| Alter table | ~18 | Penambahan kolom bertahap (flag kuota, refactor notifikasi, payment method, add-on package, AMC UID, dll.) |
Catatan untuk migrasi stack
Karena banyak perubahan skema bersifat additive (alter table menambah kolom), dan ada beberapa inkonsistensi antara definisi model dan migrasi (lihat quirks skema), saat migrasi ke ORM/stack baru disarankan:
- Snapshot skema aktual production (mis.
pg_dump --schema-only) sebagai sumber kebenaran, bukan hanya mengandalkan file migrasi. - Bandingkan skema aktual dengan definisi model untuk menemukan drift.
- Jadikan snapshot tersebut sebagai baseline migrasi pada stack baru.
Lihat Roadmap Migrasi untuk strategi lengkap.