Runbook ini menjelaskan jalur migrasi tenant non-master dari shared DB ke tenant DB dedicated. Tenant master kliniktech tetap berada di shared DB apps.ion.net.id.
Setelah gate pilot hijau, baca juga Production Cutover Readiness HA/MTDB sebelum membahas cutover production.
.env, dan destructive SQL tetap membutuhkan approval eksplisit dan tidak dijalankan otomatis.
kliniktech master.pilot-health dan pastikan schema, koneksi, demo flow, dan count minimal valid.ok sebelum cutover production. Extra row pilot DEMO-* dari seed demo tenant DB boleh tercatat sebagai accepted_pilot_extra; extra lain tetap blocking.use_tenant_db_read hanya untuk tenant pilot.tenant_db_customers_read, tenant_db_invoices_read, dan tenant_db_tickets_read.module-read dan verifikasi source tenant_db untuk tenant pilot.write-plan dan pastikan operasi write siap pilot.ticket_comments dan ticket_attachments sebelum tickets.comment_or_attachment dianggap siap pilot.cutover-gate mengembalikan cutover_allowed=true, semua block kosong, dan approval production eksplisit sudah diberikan. Gate hijau di pilot bukan perintah untuk production cutover otomatis.
php artisan tenant-db:readiness {tenant_slug} sebelum membahas approval production.Platform Admin → tenant target → panel Provisioning Tenant.Readiness Snapshot, salin Evidence Fingerprint, lalu klik Verify Fingerprint.Approve Production dan isi approver, maintenance window, rollback owner, monitoring owner, alasan approval, serta frasa APPROVE TENANT DB PRODUCTION.Production Status untuk melihat approval ID dan status cutover.Rollback Dry-run dulu memakai approval ID untuk memastikan metadata rollback valid.Cutover Production dengan approval ID, fingerprint valid, dan frasa CUTOVER TENANT DB PRODUCTION.Rollback Dry-run dari Platform Admin dengan approval ID cutover.Rollback Production dengan frasa ROLLBACK TENANT DB PRODUCTION.