Khôi phục V2 trên Supabase — không cài phần mềm

Bạn tải ZIP trực tiếp vào Supabase Dashboard → Storage. Website chỉ gửi lệnh cho Edge Function xử lý trên Supabase theo từng phần, không upload ZIP qua EdgeOne.

Cài đặt một lần qua trình duyệt

  1. Sao lưu database độc lập và chuẩn bị Project TEST.
  2. Vào SQL Editor, chạy trọn bộ 01_CAI_DAT_STORAGE_V2.sql, rồi 02_HAM_STORAGE_V2.sql từ FULL SOURCE 35. Không chạy riêng dòng lệnh trong thân hàm.
  3. Trong Supabase → Database → Extensions, bật pg_cron, và kiểm tra Cron có hoạt động.
  4. Supabase → Edge Functions → Deploy a new function → Via Editor. Tạo tên xm-storage-v2; dán toàn bộ supabase/functions/xm-storage-v2/index.ts, bật yêu cầu xác thực JWT.
  5. Storage → mở bucket riêng tư xm-restore-v2 → tạo thư mục backups → Upload ZIP V2. Không đổi nội dung file. Tên file chỉ gồm chữ, số, dấu _ - ..

Nạp staging và áp dụng

  1. Đăng nhập website bằng Admin, tab Người dùng → phần Sao lưu & Khôi phục V2.
  2. Nhập backups/BACKUP_XUONG_MAY_V2.zip, nhấn 1. Tạo phiên từ Storage. Bộ ZIP phải có v2/manifest.json và các phần NDJSON hợp lệ.
  3. Nhấn 2. Nạp tiếp staging nhiều lượt tới khi trạng thái ready. Có thể tắt trang/mở lại và tiếp tục bằng nút Kiểm tra phiên. Thao tác này chỉ nạp staging, chưa sửa dữ liệu nghiệp vụ.
  4. Đối chiếu số dòng và SQL kiểm tra chỉ đọc; xác nhận riêng chế độ missing_only hoặc overwrite rồi nhấn áp dụng một lần.
  5. Không gửi lại APPLY khi mất kết nối. Kiểm tra Cron job, audit restore_applied và trạng thái applied bằng SQL 03_KIEM_TRA_CHI_DOC.sql.

Chi tiết mở HUONG_DAN_STORAGE_SUPABASE_KHONG_CAI_SOFT_26_10_2026.md trong FULL SOURCE.