适用于 Mac 的 Turso、libSQL 客户端
使用 URL 和令牌连接 Turso 数据库,以 SQLite 语法查询,修改表、索引和触发器。同一驱动也可打开自托管 sqld 服务器和 Mac 上的 libSQL 文件。
适用于 Mac首次选择 Turso 时下载驱动
概览
- 查询语言
- SQL
- 驱动
- 首次使用时下载与 libSQL 共用
- 连接方式
- 服务 API
- iPhone 和 iPad
- 无法打开
连接 Turso
连接类型选择 Turso,Connection Mode 保持 Remote (Turso)。粘贴以 .turso.io 结尾的数据库 HTTPS URL,将令牌填入 API Token,保存在 macOS 钥匙串。Turso 仪表盘可获取两者,也可用 turso db show my-db --url、turso db tokens create my-db。
libsql:// URL 会改写为 HTTPS,导入后创建远程连接。URL 指定单个数据库,因此无主机、端口或数据库字段。使用 HTTPS 而非明文 HTTP 时连接加密,不提供 SSH 隧道。
查询和编辑
libSQL 使用 SQLite 语法,浏览、EXPLAIN QUERY PLAN 图、带 Preview SQL 的暂存编辑和导出与 SQLite 相同。
远程连接不运行事务。每条语句为独立 HTTP 请求并各自提交,BEGIN 会报错“Transactions are not supported in this mode”。事务工作需使用 libSQL 一节介绍的本地文件。
远程模式不加载 SQLite 扩展,Turso 数据库运行服务器构建时包含的扩展。Turso 限流时,错误说明重试前需等待多少秒。
表、索引和触发器
Structure 标签页 可创建表、添加和删除列及索引,创建、编辑和删除触发器。侧栏可重命名表,但不能重命名视图。
远程数据库调整列顺序或修改外键时,TablePro 生成重建脚本供自行审查运行。重建需要跨多个 HTTP 请求的单个事务,因此不能代为执行。
移动数据
TablePro 不提供 Turso、libSQL 导入;请用 Turso CLI 或 sqld 服务器的导入功能加载。要取出数据,可将表或查询结果导出为 CSV、JSON、SQL、XLSX、Markdown、HTML和XML。
iPhone 和 iPad
iPhone 和 iPad 应用没有 Turso 驱动。从 Mac 同步的 Turso 连接会显示在列表中,但无法打开。
限制
- 每个连接对应一个数据库,不支持切换数据库或分支。
- 不支持嵌入式副本。本地文件独立打开,不会同步。
libSQL
首次使用时下载iPhone 和 iPad: 无法打开
自托管 sqld 或此 Mac 上的文件请选择 libSQL。Remote 模式可访问任何提供 Hrana v2 pipeline 端点的 sqld,包括默认监听 8080 端口的本机服务器。未使用 --auth-jwt-key-file 启动的服务器可留空令牌,否则提供匹配服务器密钥的 JWT。
Local File 使用驱动内置 SQLite 打开 libSQL 文件,不存在的路径连同文件夹一起创建。本地文件支持事务、从连接 Extensions 列表加载 SQLite 扩展,并在确认后执行列重排或外键重建。
ALTER TABLE … ALTER COLUMN 等仅 libSQL 理解的语句,在本地文件上会失败,因为执行者是 SQLite。加密 libSQL 文件无法打开。切勿打开运行中的应用正在作为 Turso 嵌入式副本同步的文件,两个程序同时访问可能导致损坏。
Backup Dump 和 Restore Dump 对本地 libSQL 文件运行 sqlite3。
libSQL 限制
- Backup Dump 仅支持本地 libSQL 文件,不支持远程数据库。
关于 Turso 的问题
应选 Remote 还是 Local File?
通过 URL 访问的 Turso 或 sqld 选 Remote;此 Mac 上的 libSQL 文件选 Local File,后者还支持事务、SQLite 扩展和备份。
需要安装 Turso CLI 吗?
不需要。Turso 仪表盘也可显示数据库 URL 并创建令牌。因 TablePro 不提供 Turso 导入,CLI 适合从终端加载数据。
获取 TablePro
需要 macOS 13 Ventura 或更新版本