- Tambah endpoint GET /tariffs (list tariffs)
- Tambah endpoint GET /locations/{code} (detail location)
- Tambah endpoint GET /gates/{location_code}/{gate_code} (detail gate)
- Tambah endpoint GET /tariffs/{location_code}/{gate_code}/{category} (detail tariff)
- Tambah endpoint GET /audit-logs (audit trail history)
- Tambah endpoint GET /entry-events (raw entry events)
- Tambah endpoint GET /realtime/events (realtime events list)
- Tambah field camera di gates (support HLS, RTSP, HTTP streaming)
- Migration 004: add camera column to gates table
- Update validasi dan service untuk support camera field
Database Migrations
Cara Apply Migration
1. Backup Database (PENTING!)
Sebelum menjalankan migration, pastikan untuk backup database terlebih dahulu:
mysqldump -u sql_retribusi -p sql_retribusi > backup_$(date +%Y%m%d_%H%M%S).sql
2. Apply Migration
Menggunakan MySQL Command Line:
mysql -u sql_retribusi -p sql_retribusi < migrations/001_create_audit_logs.sql
Menggunakan phpMyAdmin:
- Login ke phpMyAdmin
- Pilih database
sql_retribusi - Klik tab "SQL"
- Copy-paste isi file
001_create_audit_logs.sql - Klik "Go" untuk execute
Menggunakan MySQL Workbench:
- Buka MySQL Workbench
- Connect ke database server
- Pilih database
sql_retribusi - File → Run SQL Script
- Pilih file
001_create_audit_logs.sql - Klik "Run"
3. Verifikasi
Setelah migration berhasil, verifikasi tabel sudah dibuat:
SHOW TABLES LIKE 'audit_logs';
DESCRIBE audit_logs;
Daftar Migration
001_create_audit_logs.sql
- Tanggal: 2024-12-28
- Deskripsi: Membuat tabel
audit_logsuntuk tracking semua perubahan data (create/update/delete) - Tabel:
audit_logs - Rollback: Tidak ada (tabel ini critical untuk audit, tidak boleh dihapus)
002_create_hourly_summary.sql
- Tanggal: 2024-12-28
- Deskripsi: Membuat tabel
hourly_summaryuntuk rekap per jam - Tabel:
hourly_summary
003_create_realtime_events.sql
- Tanggal: 2024-12-28
- Deskripsi: Membuat tabel
realtime_eventsuntuk ring buffer SSE events - Tabel:
realtime_events
004_add_camera_to_gates.sql
- Tanggal: 2025-01-17
- Deskripsi: Menambahkan field
camerake tabelgatesuntuk menyimpan URL atau identifier kamera - Tabel:
gates - Rollback:
ALTER TABLE gates DROP COLUMN camera;
Catatan Penting
- JANGAN hapus atau modify migration file yang sudah di-apply
- Selalu backup database sebelum apply migration
- Test migration di environment development terlebih dahulu
- Jika terjadi error, restore dari backup dan perbaiki migration file