ksr-sync — Version Changelog
Versi aktif berikutnya: v0.5 (naik dari v0.4). Chat sama → jangan bump, update bullet saja.
v0.4 — 2026-08-12
- Cursor watermark komposit
"<iso>|<id>"+date_truncmilidetik di SQL — baris ber-timestamp kembar tidak lagi terlompati saatLIMITmemotong batch (fix presisi µs Postgres vs ms JS Date). - Drain loop per entitas (batch diulang sampai habis); dimensi selesai dulu sebelum fact — fix
customer_idnull permanen saat backfill. - Propagasi soft-delete: pass terpisah per entitas (
*.deleted) menghapus baris ksrdb yang di-soft-delete di mpcdb; dim customer/branch dihapus setelah referensi fact di-null-kan. - GC hard-delete tiap putaran: baris ksrdb yang sumbernya hilang total dari mpcdb ikut dihapus (scan id-only).
- Booking yang berubah ke status non-kunjungan (mis. Cancelled) dihapus dari
fact_visit(status filter dipindah dari WHERE ke handler). fact_transaction.branch_iddiisi viatransaction_items(Booking) →bookings→courts.branch_id; transaksi F&B murni tetap tanpa cabang.- Script
npm run reconcile: bandingkan count (+ SUM amount transaksi) mpcdb vs ksrdb, exit 1 jika selisih — jaring pengaman untuk UPDATE tanpaupdated_at. - README: cara kerja sync + panduan menambah bisnis baru (multi-industry, satu worker per bisnis).
v0.3 — 2026-08-11
- Mirror Prisma ikut rename ksrdb
owner_users→users(migration 016); worker tetap tidak memakai tabel ini.
v0.2 — 2026-08-08
- Mirror schema Prisma: tabel
owner_users(auth mpc-owner; sync worker tidak memakainya).
v0.1 — 2026-08-08
- Cron/worker: sync customers, transactions, visits (bookings), reviews, branches dari mpcdb → ksrdb.
- Watermark incremental;
BUSINESS_CODE=mpc.