Mở đầu
Khi xây dựng ứng dụng hiện đại, việc quản lý database và migration một cách hiệu quả là yếu tố then chốt để đảm bảo tính ổn định và khả năng mở rộng của hệ thống. Supabase CLI ra đời nhằm giúp developer dễ dàng quản lý database và migration ngay trên môi trường local, đồng thời tích hợp mượt mà với hệ sinh thái Supabase. Bài viết này sẽ hướng dẫn bạn cách sử dụng Supabase CLI để tối ưu quy trình phát triển, từ việc thiết lập local development đến quản lý migration một cách chuyên nghiệp.
Supabase CLI là gì?
Supabase CLI là công cụ dòng lệnh chính thức của Supabase, cho phép bạn quản lý database, migration, roles, và policies ngay trên máy local. Với CLI, bạn có thể:
- Chạy database PostgreSQL trên local bằng Docker. - Tạo, chạy và quản lý migration files. - Đồng bộ schema giữa local và cloud. - Quản lý database hooks, policies, và roles một cách tập trung.
Điều này giúp bạn phát triển ứng dụng nhanh hơn, an toàn hơn, và dễ dàng hợp tác trong team.
Cài đặt Supabase CLI
Để bắt đầu, bạn cần cài đặt Supabase CLI trên máy. Cách đơn giản nhất là sử dụng npm:
npm install -g supabase
Hoặc nếu dùng Homebrew trên macOS:
brew install supabase/tap/supabase
Sau khi cài đặt xong, bạn có thể kiểm tra bằng lệnh:
supabase --version
Thiết lập local development
Bước 1: Khởi tạo project
Mở terminal, di chuyển đến thư mục dự án và chạy:
supabase init
Lệnh này sẽ tạo ra cấu trúc thư mục cơ bản cho project Supabase của bạn, bao gồm:
- supabase/
- config.toml - file cấu hình
- migrations/ - thư mục chứa migration files
- schema.sql - schema hiện tại của database
Bước 2: Chạy database local
Để chạy database PostgreSQL trên local, sử dụng:
supabase start
Lệnh này sẽ tự động pull và chạy các Docker container cần thiết, bao gồm:
- PostgreSQL database - PgBouncer (connection pooling) - Local Storage - Auth service
Sau khi chạy xong, bạn sẽ thấy thông báo với URLs để truy cập vào database và services.
Bước 3: Kết nối với database
Bạn có thể kết nối với database local bằng các client như DBeaver, TablePlus, hoặc ngay trong terminal:
psql -h localhost -p 54320 -U postgres
Mật khẩu mặc định là postgres.
Quảng cáo
300x250 In-Content Advertisement
Quản lý migration với Supabase CLI
Migration là quá trình thay đổi cấu trúc database một cách có kiểm soát. Supabase CLI giúp bạn quản lý migration một cách dễ dàng và an toàn.
Tạo migration file
Khi bạn muốn thay đổi schema database, trước tiên hãy tạo migration file:
supabase migration new tên_migration
Ví dụ:
supabase migration new add_users_table
Lệnh này sẽ tạo ra một file mới trong thư mục migrations/ với timestamp và tên bạn cung cấp.
Viết migration
Mở file migration vừa tạo và viết SQL để thay đổi schema. Ví dụ:
-- Add users table
CREATE TABLE public.users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) UNIQUE NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
Chạy migration
Để áp dụng migration lên database local:
supabase db push
Lệnh này sẽ tự động so sánh schema hiện tại với schema trong migration files và thực thi các thay đổi cần thiết.
Xem diff schema
Nếu bạn muốn xem sự khác biệt giữa schema hiện tại và schema trong migration files:
supabase db diff
Điều này giúp bạn kiểm tra trước khi push thay đổi lên database.
Đồng bộ với cloud project
Khi đã hoàn tất phát triển trên local, bạn có thể đồng bộ schema với cloud project Supabase:
supabase db push --schema public
Để pull schema từ cloud về local:
supabase db pull
Một số tips khi làm việc với Supabase CLI
- Luôn commit migration files: Đảm bảo mọi thay đổi schema đều được lưu trong git. - Đặt tên migration rõ ràng: Tên nên mô tả ngắn gọn nội dung thay đổi. - Sử dụng transaction trong migration: Đảm bảo toàn vẹn dữ liệu khi rollback. - Backup trước khi chạy migration lớn: Tránh mất mát dữ liệu không mong muốn. - Sử dụng environment variables: Không hardcode credentials trong files.
Kết luận
Supabase CLI là công cụ mạnh mẽ giúp bạn quản lý database và migration một cách chuyên nghiệp ngay trên môi trường local. Với CLI, bạn có thể phát triển ứng dụng nhanh hơn, an toàn hơn, và dễ dàng hợp tác trong team. Việc nắm vững cách sử dụng Supabase CLI sẽ giúp bạn tối ưu quy trình phát triển và đảm bảo tính ổn định cho hệ thống database của mình.
Hãy bắt đầu trải nghiệm Supabase CLI ngay hôm nay để nâng cao chất lượng dự án của bạn!