mcpField
T
turso

turso

github.com/oakoss数据与数据库2091 次安装11 周前更新
代码仓库

关于 turso

面向边缘部署应用的 Turso 数据库技能,介绍基于 libSQL 的 SQLite 数据库及其客户端用法。重点包括嵌入式副本、远程同步、向量搜索和数据库管理。

主要功能

  1. 01远程与本地数据库连接
  2. 02嵌入式副本与同步
  3. 03批量操作和事务
  4. 04向量存储与相似度搜索
  5. 05CLI 与平台 API 管理

适用场景

  1. 01为边缘应用配置低延迟读取
  2. 02使用嵌入式副本支持离线读取
  3. 03为租户配置独立数据库
  4. 04在数据库中执行向量相似度搜索

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oakoss/agent-skills --skill turso

安装后在 Claude Code 中输入/turso确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
cli-management.md
client-sdk.md
drizzle-integration.md
embedded-replicas.md
multi-tenant.md
schema-migrations.md
transactions.md
vector-search.md

详细介绍

Turso

概述

Turso 是一个基于 libSQL 构建的边缘托管 SQLite 平台,libSQL 是 SQLite 的开源分支。它提供全球分布式数据库和嵌入式副本,支持本地优先读取;还提供用于以编程方式管理数据库的平台 API,以及原生向量搜索。对于需要低延迟读取、按租户隔离数据库或支持离线的嵌入式副本的边缘部署应用,可使用 Turso。如果需要支持跨租户复杂联接的传统关系数据库,或需要 PostgreSQL 特有功能,则不建议使用。

快速参考

模式API / 命令要点
远程客户端createClient({ url, authToken })连接到 Turso 云数据库
本地文件客户端createClient({ url: 'file:local.db' })通过 libSQL 使用纯本地 SQLite
嵌入式副本createClient({ url, syncUrl, authToken })本地读取,远程同步
手动同步client.sync()从远程拉取最新更改
定期同步客户端配置中的 syncInterval: 60自动同步间隔,单位为秒
执行查询client.execute({ sql, args })使用位置参数 ? 或命名参数 $param
批量操作client.batch([...statements], mode)原子执行多条语句
交互式事务client.transaction('write')多步逻辑,支持提交和回滚
静态数据加密客户端配置中的 encryptionKey加密本地数据库文件
插入向量vector32('[0.1, 0.2, ...]')将嵌入向量存储为 F32_BLOB 列
向量搜索vector_distance_cos(col, vector32(...))余弦相似度,按距离升序排列
向量索引libsql_vector_idx(col, 'type=diskann')DiskANN 索引,用于高效最近邻搜索
创建数据库(CLI)turso db create <name>配置新数据库
创建数据库(API)POST /v1/organizations/{org}/databases以编程方式为多租户配置数据库
生成令牌(CLI)turso db tokens create <name>创建认证令牌,可选只读权限和过期时间
Drizzle 集成drizzle(createClient({ url, authToken }))使用 drizzle-orm/libsql 驱动
内存数据库createClient({ url: ':memory:' })用于测试的临时数据库

常见错误

错误正确做法
在没有 authToken 的情况下使用 syncUrl嵌入式副本需要同时配置 syncUrl 和 authToken
读取前忘记调用 client.sync()调用 sync() 或设置 syncInterval,以保持副本为最新状态
在没有向量索引的情况下使用 vector_distance_cos创建 libsql_vector_idx 索引,以高效进行相似性搜索
在源代码中硬编码身份验证令牌使用环境变量 TURSO_DATABASE_URL 和 TURSO_AUTH_TOKEN
对简单批处理使用交互式事务使用 client.batch() 执行原子性的多语句操作
出错时未关闭事务始终在 finally 块中调用 transaction.close()
为所有租户创建一个数据库对 SaaS 工作负载使用按租户隔离的多数据库架构
将原始数组作为向量值传递使用 vector32() SQL 函数包装向量,或传入 Float32Array
使用 ORDER BY distance DESC 查找最近邻对于余弦距离,距离越小越近;请使用 ORDER BY distance ASC

委派

如果有 drizzle-orm 技能,请将 ORM 架构定义、查询构建、关联关系和迁移模式委派给它。 否则,建议使用:pnpm dlx skills add oakoss/agent-skills -s drizzle-orm -a claude-code -y

如果有 local-first 技能,请将架构决策、同步引擎比较和冲突解决策略委派给它。 否则,建议使用:pnpm dlx skills add oakoss/agent-skills -s local-first -a claude-code -y

如果有 pglite 技能,请将与 Turso 嵌入式副本进行比较时涉及的 PGlite 特定模式委派给它。

  • 数据库配置:使用 Task Agent 自动设置多租户
  • 向量搜索调优:使用 Explore Agent 调研嵌入模型和维度
  • 代码审查:委派给 code-reviewer Agent

参考资料

评论

支持 Markdown