Panduan pengelolaan migrasi database untuk Local Development (PostgreSQL) dan sinkronisasi ke Production (Hostinger MySQL).
Local development menggunakan PostgreSQL dengan modul migrasi node-pg-migrate. File migrasi disimpan secara modular (1 file per tabel) di dalam folder database/migrations/.
Pastikan variabel DATABASE_URL sudah dikonfigurasi di root project:
DATABASE_URL=postgres://username:password@localhost:5432/nama_database_local| Perintah | Deskripsi |
|---|---|
npm run migrate:up |
Menjalankan seluruh file migrasi yang belum dieksekusi (UP). |
npm run migrate:down |
Melakukan rollback / membatalkan migrasi terakhir (DOWN). |
npm run migrate:create -- <nama_tabel> |
Membuat file migrasi .sql baru secara otomatis dari terminal dengan timestamp. |
npm run migrate:create -- create_notifications_tablePerintah di atas akan menghasilkan file baru di database/migrations/<timestamp>_create-notifications-table.sql. Anda cukup mengisi query pada bagian -- Up Migration dan -- Down Migration, lalu jalankan:
npm run migrate:upProduction di Hostinger menggunakan database MySQL / MariaDB. Agar tidak perlu menulis ulang query migrasi, project ini dilengkapi script konversi otomatis.
Kapan pun ada penambahan atau perubahan migrasi di local, jalankan perintah:
npm run db:exportScript ini akan membaca seluruh migrasi PostgreSQL di database/migrations/ dan secara otomatis mengonversinya ke sintaks MySQL:
- Mengubah tipe
ENUMkustom PostgreSQL menjadi inlineENUM(...)pada kolom MySQL. - Mengubah tipe data
SERIAL→INT AUTO_INCREMENT. - Mengubah
TIMESTAMP WITH TIME ZONE→TIMESTAMP. - Mengubah
JSONB→JSON. - Menambahkan konfigurasi
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_cidanSET FOREIGN_KEY_CHECKS.
Hasil konversi disimpan ke dalam satu file SQL siap pakai:
database/hostinger_mysql.sql
- Jalankan
npm run db:exportdi komputer lokal Anda. - Login ke cPanel / hPanel Hostinger → buka menu phpMyAdmin.
- Pilih database production Anda di bilah kiri.
- Klik tab Import pada navigasi atas.
- Klik Choose File / Browse, lalu pilih file
database/hostinger_mysql.sql. - Klik tombol Go / Kirim di bagian bawah halaman.
Project ini dilengkapi dengan file koleksi Postman yang memiliki fitur Auto-save Token & OTP serta pengujian otomatis (automated assertions).
- Koleksi API:
postman_collection.json - Environment:
postman_environment.json
- Buka aplikasi Postman → klik tombol Import di pojok kiri atas.
- Drag & drop kedua file di atas (
postman_collection.jsondanpostman_environment.json). - Pilih environment
Backend Rays (Local)di dropdown pojok kanan atas Postman. - Anda bisa menjalankan request secara berurutan atau klik kanan folder koleksi → Run collection untuk pengujian otomatis seluruh skenario (Register → OTP → Login → Profile → RBAC 403 Security Check).
Dokumentasi arsitektur dan panduan integrasi modul spesifik tersedia pada folder docs/:
- Panduan Profil, Avatar & Media Upload: Panduan integrasi upload foto avatar (1-step form-data vs 2-step JSON) dan format
avatar_preview_urluntuk FE. - Integrasi Web Live Chat (Socket.io): Panduan integrasi event WebSocket dan fallback HTTP untuk widget chat pengunjung dan inbox CS Admin CMS.
- Integrasi Google Analytics 4 (GA4): Panduan konfigurasi service account dan pengambilan data analitik dashboard CMS.
- Tracking Meta Pixel & Conversions API (CAPI): Panduan server-side event tracking untuk Facebook & Instagram Ads.
- Spesifikasi Kalkulator Layanan & Estimasi Harga: Formula perhitungan harga booking dan detailing service.