Khởi tạo Database Serverless với Turso
Bước đầu tiên là tạo một instance database mới trên nền tảng Turso. Lệnh này sẽ khởi tạo một file SQLite trong cloud với tên định danh mà bạn chọn.
Tại sao cần làm bước này: Turso hoạt động dựa trên mô hình multi-tenancy, bạn cần một container logic riêng để chứa các bảng dữ liệu của ứng dụng. Nếu không tạo database, bạn không thể thực hiện các thao tác SQL hay tạo branch.
Kết quả mong đợi: Database được tạo thành công, hiển thị thông tin về ID, Region và URL kết nối.
Thực hiện lệnh tạo database với tên my_app_db và chọn region gần nhất (ví dụ: sin cho Singapore hoặc fra cho Frankfurt để tối ưu độ trễ).
turso db create my_app_db --region sin
Kiểm tra kết quả bằng cách liệt kê tất cả database hiện có để xác nhận my_app_db xuất hiện trong danh sách.
turso db list
Hiểu cơ chế Branching trong Turso
Khái niệm Main và Dev Branch
Turso sử dụng cơ chế branching tương tự Git để quản lý phiên bản schema và dữ liệu. Mỗi database mặc định có một branch main là môi trường production ổn định.
Tại sao cần phân biệt: Branch main dùng cho dữ liệu người dùng thật, trong khi các branch phụ (như dev) dùng để test schema mới, chạy migration hoặc phát triển tính năng mà không ảnh hưởng đến production.
Kết quả mong đợi: Bạn hiểu được luồng dữ liệu, khi merge branch về main thì schema mới sẽ được áp dụng cho toàn bộ hệ thống.
Xác nhận Branch mặc định
Trước khi tạo branch mới, hãy kiểm tra xem database vừa tạo đã có branch mặc định chưa. Turso tự động tạo branch main khi khởi tạo database.
turso db branches list my_app_db
Kết quả trả về sẽ hiển thị danh sách các branch, bạn sẽ thấy dòng main với trạng thái active.
Tạo Branch mới để phát triển và Test
Để phát triển tính năng mới hoặc thay đổi cấu trúc bảng (schema) mà không làm gián đoạn dịch vụ, bạn cần tạo một branch riêng biệt từ branch main hiện tại.
Tại sao cần làm điều này: Việc test trực tiếp trên branch main rất rủi ro. Nếu lệnh SQL sai, dữ liệu production có thể bị hỏng. Branch dev giúp bạn cách ly rủi ro này.
Kết quả mong đợi: Branch dev được tạo thành công, chứa bản sao dữ liệu và schema tại thời điểm tạo từ branch main.
Thực hiện lệnh tạo branch mới có tên dev từ branch main của database my_app_db.
turso db branch create my_app_db dev --parent main
Lưu ý: Tham số --parent main bắt buộc để xác định điểm chia tách (fork point). Nếu không chỉ định, Turso sẽ mặc định fork từ main.
Kiểm tra lại danh sách branch để xác nhận branch dev đã xuất hiện bên cạnh main.
turso db branches list my_app_db
Bạn sẽ thấy hai dòng: main và dev. Điều này xác nhận môi trường phát triển đã sẵn sàng.
Cấu hình Region để tối ưu độ trễ
Mặc dù khi tạo database bạn đã chỉ định region, nhưng trong quá trình phát triển, bạn có thể cần sao chép database sang region khác hoặc tạo branch mới ở region khác để test hiệu năng mạng (latency) từ các khu vực khác nhau.
Tại sao cần cấu hình: Turso là database serverless phân tán toàn cầu. Việc đặt database ở region gần người dùng (ví dụ: người dùng ở Việt Nam nên chọn region sin hoặc hnd) giúp giảm latency đáng kể so với region us-east.
Kết quả mong đợi: Database hoặc branch mới được đặt đúng region mục tiêu, đảm bảo tốc độ truy cập tối ưu.
Khi tạo branch mới, bạn có thể chỉ định region khác với branch cha bằng tham số --region. Ví dụ tạo branch test-eu đặt tại region Frankfurt (fra) từ branch main.
turso db branch create my_app_db test-eu --parent main --region fra
Lệnh này sẽ sao chép dữ liệu từ Singapore sang Frankfurt và tạo một branch độc lập tại đó. Lưu ý: Thao tác này có thể mất vài giây để đồng bộ dữ liệu qua biên giới.
Verify kết quả bằng cách hiển thị chi tiết của branch test-eu để xem thông tin region.
turso db branch show my_app_db test-eu
Trong đầu ra, tìm trường region và xác nhận giá trị là fra.
Verify toàn bộ cấu hình
Để đảm bảo mọi thứ đã hoạt động chính xác, hãy thực hiện một lệnh kiểm tra tổng hợp cuối cùng.
Thực hiện lệnh hiển thị thông tin chi tiết của database, bao gồm cả các branch và region của chúng.
turso db show my_app_db
Kết quả mong đợi: Đầu ra hiển thị URL kết nối của database, region mặc định là sin, và danh sách các branch main, dev, test-eu với các thông số region tương ứng.
Thử kết nối vào branch dev để xác nhận bạn có thể truy cập vào môi trường phát triển mà không ảnh hưởng đến main.
turso db shell my_app_db --branch dev
Nhập lệnh SQL đơn giản để test kết nối:
SELECT 'Branch Dev is active';
Ra khỏi shell bằng lệnh .quit hoặc nhấn Ctrl+D.
Điều hướng series:
Mục lục: Series: Triển khai Database Serverless với Turso và SQLite trên Ubuntu 24.04
« Phần 2: Cài đặt và cấu hình Turso CLI trên Linux
Phần 4: Thiết kế Schema và nhập dữ liệu mẫu »