Client Turso và libSQL cho Mac
Kết nối tới cơ sở dữ liệu Turso bằng URL và token, query theo cú pháp SQLite, và thay đổi table, index và trigger của nó. Cùng một driver còn mở được server sqld tự host và file libSQL trên máy Mac của bạn.
Dùng được trên MacDriver được tải về ở lần đầu bạn chọn Turso
Tóm tắt
- Ngôn ngữ query
- SQL
- Driver
- Tải về ở lần dùng đầuDùng chung với libSQL
- Cách kết nối
- API của dịch vụ
- iPhone và iPad
- Không mở được
Kết nối tới Turso
Chọn Turso trong danh sách loại connection và giữ Chế độ kết nối (Connection Mode) ở Từ xa (Turso). Dán URL HTTPS của cơ sở dữ liệu, có đuôi .turso.io, và nhập token vào ô có nhãn API Token, được lưu trong Keychain của macOS. Dashboard của Turso hiển thị cả hai, và hai lệnh turso db show my-db --url và turso db tokens create my-db cũng vậy.
URL libsql:// được đổi sang HTTPS, và import URL đó sẽ tạo một connection từ xa. Không có ô host, port hay cơ sở dữ liệu, vì URL đã chỉ định một cơ sở dữ liệu. Connection được mã hóa khi URL dùng HTTPS thay vì HTTP thường, và không có SSH tunnel.
Query và chỉnh sửa
libSQL dùng cú pháp của SQLite, nên việc duyệt dữ liệu, sơ đồ EXPLAIN QUERY PLAN, thay đổi đang chờ lưu cùng Preview SQL và export hoạt động như trên SQLite.
Connection từ xa không chạy transaction. Mỗi câu lệnh là một request HTTP riêng và tự commit, còn BEGIN báo lỗi “Transactions are not supported in this mode”. Công việc cần transaction phải dùng file libSQL cục bộ, như mô tả ở phần libSQL.
Chế độ từ xa không nạp extension SQLite nào: cơ sở dữ liệu Turso chạy những extension mà server của nó được build kèm. Khi Turso giới hạn tần suất một connection, thông báo lỗi cho biết cần chờ bao nhiêu giây trước khi thử lại.
Table, index và trigger
Tab Structure tạo table, thêm và xóa cột cùng index, và tạo, sửa, xóa trigger. Table, nhưng không phải view, có thể đổi tên từ sidebar.
Với việc đổi thứ tự cột hay thay đổi khóa ngoại trên cơ sở dữ liệu từ xa, TablePro viết script dựng lại table để bạn đọc và tự chạy. TablePro không thể chạy script đó thay bạn, vì việc dựng lại cần một transaction trải qua nhiều request HTTP riêng lẻ.
Di chuyển dữ liệu
TablePro không có import cho Turso và libSQL; hãy nạp dữ liệu bằng Turso CLI hoặc tính năng import trên server sqld của bạn. Để lấy dữ liệu ra, hãy export table hoặc kết quả query ra CSV, JSON, SQL, XLSX, Markdown, HTML và XML.
iPhone và iPad
Ứng dụng cho iPhone và iPad không có driver Turso. Connection Turso đồng bộ từ máy Mac vẫn hiện trong danh sách nhưng không mở được.
Giới hạn
- Mỗi connection là một cơ sở dữ liệu. Không hỗ trợ đổi cơ sở dữ liệu và branch.
- Không hỗ trợ embedded replica: file cục bộ được mở độc lập và không đồng bộ.
libSQL
Tải về ở lần dùng đầuiPhone và iPad: Không mở được
Hãy chọn libSQL cho server sqld tự host hoặc file trên máy Mac này. Ở chế độ từ xa, libSQL kết nối tới bất kỳ sqld nào phục vụ endpoint Hrana v2 pipeline, kể cả sqld chạy ngay trên máy Mac này, vốn lắng nghe ở port 8080 theo mặc định. Hãy để trống token với server khởi động không có --auth-jwt-key-file, hoặc dùng một JWT khớp với key của server.
Chế độ Tệp cục bộ (Local File) mở file libSQL bằng engine SQLite đi kèm driver, và đường dẫn chưa tồn tại sẽ được tạo mới, kể cả các thư mục. File cục bộ chạy được transaction, nạp extension SQLite từ danh sách Extensions của connection, và chạy việc dựng lại table khi đổi thứ tự cột hay khóa ngoại sau khi bạn xác nhận.
Câu lệnh chỉ libSQL hiểu, như ALTER TABLE … ALTER COLUMN, sẽ lỗi trên file cục bộ, vì engine SQLite là bên nhận câu lệnh. File libSQL đã mã hóa không mở được. Đừng bao giờ mở một file đang được một ứng dụng khác đồng bộ dưới dạng embedded replica của Turso khi ứng dụng đó đang chạy: hai chương trình cùng truy cập có thể làm hỏng file.
Backup Dump và Restore Dump chạy sqlite3 trên file libSQL cục bộ.
Giới hạn của libSQL
- Backup Dump chỉ dùng được cho file libSQL cục bộ, không dùng cho cơ sở dữ liệu từ xa.
Câu hỏi về Turso
Nên chọn chế độ Từ xa hay Tệp cục bộ?
Từ xa, cho cơ sở dữ liệu Turso hoặc server sqld mà bạn truy cập bằng URL. Tệp cục bộ, cho file libSQL trên máy Mac này; chế độ này còn cho bạn transaction, extension SQLite và sao lưu.
Tôi có cần cài Turso CLI không?
Không. Dashboard của Turso cũng hiển thị URL của cơ sở dữ liệu và tạo token. CLI hữu ích khi bạn nạp dữ liệu từ terminal, vì TablePro không có import cho Turso.
Tải TablePro
Yêu cầu macOS 13 Ventura trở lên