Skip to content

Migrasi Sequelize

Lokasi & cara kerja

  • Folder: migrations/
  • Jumlah: 47 file migrasi
  • Rentang tanggal: 2022-06-272024-08-07
  • Tool: Sequelize CLI (npx sequelize-cli)
  • Helper: helpers/migrations/common-migration.helper.js — mengaktifkan ekstensi PostgreSQL uuid-ossp dan 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-migrasi

Migrasi 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

PolaContoh
YYYYMMDDHHMMSS-create-<entity>.js20220627025052-create-users.js
YYYYMMDDHHMMSS-create_table-<Entity>.js20220819010301-create_table-TViewCompanyMailUsages.js
YYYYMMDDHHMMSS-alter_table-<Entity>.js20230117230303-alter_table-TransCompanies.js
YYYYMMDDHHMMSS-alter-table-<entity>.js202402010635200-alter-table-transcompany-invoice.js

Komposisi

JenisJumlahTujuan
Create table~29Skema awal seluruh entitas inti
Alter table~18Penambahan 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:

  1. Snapshot skema aktual production (mis. pg_dump --schema-only) sebagai sumber kebenaran, bukan hanya mengandalkan file migrasi.
  2. Bandingkan skema aktual dengan definisi model untuk menemukan drift.
  3. Jadikan snapshot tersebut sebagai baseline migrasi pada stack baru.

Lihat Roadmap Migrasi untuk strategi lengkap.