# Backup, khôi phục và lịch sử Database

Kiểm tra trạng thái bản sao trước khi thực hiện thay đổi có thể mất dữ liệu.

Nguồn: https://whypik.com/docs/database-recovery
Nhóm: Lập trình viên
Phiên bản tài liệu: 2026-10-14.10
Ngôn ngữ: vi

## Backup

Liên kết mục: https://whypik.com/docs/database-recovery#section-0

Mở Database → Sao lưu & khôi phục. Bấm Tạo bản sao lưu hoặc bật lịch khi môi trường cho phép. Trang hiện thông báo đã đưa vào hàng đợi, tự cập nhật bảng và ẩn thông báo chờ khi tác vụ kết thúc. Chỉ bản Sẵn sàng mới có thể dùng để khôi phục; lỗi được thể hiện ở dòng tương ứng. Backup được mã hóa và giữ riêng khỏi public Storage.


## Restore và rollback

Liên kết mục: https://whypik.com/docs/database-recovery#section-1

Restore tạo generation mới, kiểm tra trước khi chuyển active. Theo dõi operation đến ready/completed; các trạng thái preparing/failed/needs attention cần đọc chi tiết. Rollback chọn generation còn được giữ và đủ điều kiện, không suy đoán website/database đã quay lại chỉ từ nút bấm.


## Ứng dụng khi thay schema

Liên kết mục: https://whypik.com/docs/database-recovery#section-2

Tải lại types, kiểm tra policy và truy vấn sau schema/restore. Ghi cũ có revision/write_token không khớp sẽ bị chặn. Không cố gửi request cũ bằng token sửa thủ công. Xóa generation/backup là thao tác riêng, đọc ảnh hưởng trước khi xác nhận.


## Làm trống để nhập lại từ đầu

Liên kết mục: https://whypik.com/docs/database-recovery#section-3

Mở Database → Cài đặt → Làm trống Database. Thao tác xóa toàn bộ bảng ứng dụng, dữ liệu, index, quan hệ và quy tắc truy cập Database. Project, tài khoản Auth, khóa API, Hosting, Mini Server và Storage được giữ nguyên. Có thể nhập lại bảng/cột với tên cũ; cấu trúc nhập mới bắt đầu ở chế độ riêng tư cho tới khi cấu hình quyền.

Xuất dữ liệu cần giữ trước. Tạo một bản sao lưu của revision đang chạy trong Sao lưu & khôi phục và chờ Sẵn sàng. Mở lại Làm trống Database, chọn bản phù hợp tại Bản sao kiểm chứng trước khi làm trống, nhập đúng mã dự án rồi bấm Kiểm chứng bản sao và làm trống. Theo dõi Hàng đợi tới completed và Database ready trước khi nhập lại. Mở dialog hoặc chuyển tab không xóa dữ liệu.

Đây là khởi đầu cấu trúc mới, không phải chỉ xóa dòng. Bản sao và phiên bản trước lần làm trống vẫn tồn tại theo hạn lưu nhưng không thể restore/rollback vào cấu trúc mới, nhằm tránh gán quyền của bảng mới cho dữ liệu cũ trùng tên. Giao diện đánh dấu Trước lần làm trống · không thể khôi phục. Làm trống không dọn Object Storage hoặc tất cả bản sao lịch sử.

- [Nhập lại cấu trúc và dữ liệu](https://whypik.com/docs/database-import)

## Management API: làm trống Database

Liên kết mục: https://whypik.com/docs/database-recovery#section-4

POST /api/v1/cloud/projects/{PROJECT_UUID}/database/reset. Dùng management bearer key có database:write và quyền khôi phục; public key, server Data API key và auth.is_admin của ứng dụng không cấp quyền thao tác này. Dashboard dùng phiên quản lý Project và CSRF. Staff còn cần quyền khôi phục Database và lý do truy cập.

Body gồm revision (số nguyên đang chạy), backup_id (UUID bản sao đã xác minh cùng Database/generation/revision), confirm_project (PROJECT_ID chính xác). Bắt buộc Idempotency-Key; nhận HTTP 202 với operation có kind reset. Dùng GET .../database/operations theo dõi. Giữ cùng khóa và body khi chưa rõ kết quả; không tạo yêu cầu mới sau lỗi mạng. Xung đột revision/bận cần làm mới; thiếu xác nhận hoặc bản sao phù hợp bị từ chối.

```
POST /api/v1/cloud/projects/<PROJECT_UUID>/database/reset
Authorization: Bearer <MANAGEMENT_KEY>
Idempotency-Key: <REQUEST_UUID>
Content-Type: application/json

{"revision": 3, "backup_id": "<BACKUP_UUID>", "confirm_project": "my-project"}
```


## Migration history khi restore hoặc làm trống

Liên kết mục: https://whypik.com/docs/database-recovery#section-5

Managed Database theo dõi history theo generation/lineage. Restore/làm trống vô hiệu hóa plan cũ; không copy cờ applied của lineage trước vào Database mới. Lịch sử nguồn được giữ riêng để đối soát.

Quyền bị thu hồi sau bản backup không tự hồi sinh khi restore. Nếu quyền an toàn hiện hành khác history, hệ thống ghi nhận sai lệch và dừng migration cho tới khi đối soát; không sửa checksum để che sai lệch. Sau reset có thể dùng lại tên bảng nhưng phải apply cấu trúc có chủ đích trên lineage mới.


## Đọc tiếp

- [Đọc tình trạng dịch vụ trong Project](https://whypik.com/docs/service-status)
- [Nhập JSON, SQL và dữ liệu có sẵn](https://whypik.com/docs/database-import)
- [REST quản lý Database và import](https://whypik.com/docs/management-api)
- [Hàng đợi, lỗi và lịch sử thao tác](https://whypik.com/docs/admin-queues)
- [Bắt đầu với Database Migration](https://whypik.com/docs/data-migrations)
- [Migration: hợp đồng, baseline và phục hồi](https://whypik.com/docs/data-migrations-reference)
