Giới thiệu về backup và restore dữ liệu trong Supabase
Dữ liệu là tài sản quý giá nhất của mọi ứng dụng. Mất mát hoặc hỏng hóc dữ liệu có thể gây ra hậu quả nghiêm trọng, từ gián đoạn hoạt động đến mất uy tín với người dùng. Vì vậy, việc backup và restore dữ liệu là một phần không thể thiếu trong quy trình quản trị cơ sở dữ liệu.
Supabase, với nền tảng PostgreSQL, cung cấp nhiều công cụ và tính năng mạnh mẽ để đảm bảo dữ liệu của bạn luôn được bảo vệ và dễ dàng khôi phục khi cần. Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách backup và restore dữ liệu trong Supabase một cách chi tiết và thực tế.
Các phương pháp backup trong Supabase
Supabase hỗ trợ nhiều phương pháp backup khác nhau, phù hợp với nhu cầu và quy mô của từng dự án.
1. Backup tự động (Point-in-time Recovery)
Supabase tự động backup dữ liệu của bạn mỗi 6 tiếng và lưu giữ trong vòng 32 ngày. Đây là tính năng Point-in-time Recovery (PITR), cho phép bạn khôi phục cơ sở dữ liệu về một thời điểm cụ thể trong quá khứ. Điều này rất hữu ích khi bạn vô tình xóa hoặc làm hỏng dữ liệu và muốn quay lại trạng thái trước đó.
Để sử dụng PITR, bạn có thể vào phần “Database” trong dashboard của Supabase, chọn “Point-in-time Recovery”, và chọn thời điểm muốn khôi phục. Supabase sẽ tự động tạo một bản backup mới dựa trên thời điểm đó.
2. Backup thủ công (Manual Backup)
Ngoài backup tự động, bạn cũng có thể tạo backup thủ công bất cứ khi nào cần. Điều này đặc biệt hữu ích trước khi thực hiện các thay đổi lớn hoặc cập nhật quan trọng.
Để tạo backup thủ công, bạn có thể sử dụng lệnh pg_dump trong Supabase CLI hoặc dùng công cụ quản trị cơ sở dữ liệu như pgAdmin. Ví dụ:
pg_dump -h db.your-project.supabase.co -U postgres -F c -b -v -f backup.bak your_databaseLệnh này sẽ tạo một file backup có định dạng custom (.bak) chứa toàn bộ dữ liệu và cấu trúc của cơ sở dữ liệu.
3. Sử dụng API của Supabase
Supabase cũng cung cấp API để tương tác với cơ sở dữ liệu, cho phép bạn tự động hóa quá trình backup thông qua code. Bạn có thể sử dụng thư viện supabase-js để query dữ liệu và lưu vào file hoặc dịch vụ lưu trữ khác.
Ví dụ:
import { createClient } from '@supabase/supabase-js'
const supabase = createClient('https://your-project.supabase.co', 'your-anon-key')
// Query dữ liệu và lưu vào file
const { data, error } = await supabase.from('your_table').select('*')