# Cheatsheet Migrasi Varian (Operator)

Dokumen ringkas ini dipakai saat menjalankan migrasi varian per instance subsidiary.

## 1) Persiapan Cepat
1. Pastikan workspace benar, contoh: `W:\san_sarana_8apr`.
2. Pastikan file SQL ini ada:
   - `application/sql/variant_migration_phase1/precheck.sql`
   - `application/sql/variant_migration_phase1/migrate_variant_foundation.sql`
   - `application/sql/variant_migration_phase1/postcheck.sql`
3. Pastikan target database yang akan dieksekusi sudah benar.

## 2) Alur Eksekusi Wajib
1. Jalankan `precheck.sql`.
2. Review hasil MISSING/EXISTS.
3. Jalankan `migrate_variant_foundation.sql` (setelah approval).
4. Jalankan `postcheck.sql`.
5. Cek hasil akhir: `missing_total` harus `0`.
6. (Opsional untuk UAT) jalankan paket dummy fase-3:
   - `application/sql/variant_migration_phase3_uat_dummy/00_precheck_uat_dummy.sql`
   - `10_seed_crm_uat.sql` (DB CRM)
   - `20_seed_holding_uat.sql` (DB holding)
   - `30_seed_subsidiary_uat.sql` (DB subsidiary)
   - `90_verify_uat_dummy.sql`
7. Setelah UAT, jalankan `99_cleanup_uat_dummy.sql`.

## 3) Command Siap Pakai
PowerShell:
```powershell
mysql -h <host> -u<user> -p<password> -D <database> --execute="source application/sql/variant_migration_phase1/precheck.sql"
mysql -h <host> -u<user> -p<password> -D <database> --execute="source application/sql/variant_migration_phase1/migrate_variant_foundation.sql"
mysql -h <host> -u<user> -p<password> -D <database> --execute="source application/sql/variant_migration_phase1/postcheck.sql"
```

Linux/bash:
```bash
mysql -h <host> -u<user> -p <database> < application/sql/variant_migration_phase1/precheck.sql
mysql -h <host> -u<user> -p <database> < application/sql/variant_migration_phase1/migrate_variant_foundation.sql
mysql -h <host> -u<user> -p <database> < application/sql/variant_migration_phase1/postcheck.sql
```

## 4) Keputusan Cepat
1. Jika `missing_total = 0`:
   - status: siap lanjut patch PHP (`pembelian -> distribusi -> penjualan`).
2. Jika `missing_total > 0`:
   - status: HOLD.
   - jangan lanjut patch PHP.
   - cek objek MISSING di output `postcheck`.

## 5) Larangan Penting
1. Jangan patch PHP sebelum fondasi DB selesai.
2. Jangan sentuh file `__*`, `*_OLD.php`, dan folder `trash`.
3. Jangan eksekusi DDL di luar maintenance window.

## 6) Checklist Bukti Audit
1. Simpan output `precheck`.
2. Simpan output `postcheck`.
3. Catat:
   - nama instance
   - nama database
   - waktu eksekusi
   - operator
   - status akhir (GO/HOLD)

## 7) Template Catatan Eksekusi
```text
Instance      : <san_add / san_ppu / san_sarana / san_sdl / san_tsa>
Workspace     : <W:\...>
Database      : <nama_db>
Operator      : <nama>
Waktu Mulai   : <yyyy-mm-dd hh:mm>
Waktu Selesai : <yyyy-mm-dd hh:mm>
Hasil Precheck: <ringkas>
Hasil Postcheck missing_total: <angka>
Keputusan     : <GO / HOLD>
Catatan       : <opsional>
```
