核心用法
Supabase CLI 是一个命令行封装工具,用于与 Supabase 后端服务进行交互。主要功能覆盖四大领域:
1. 数据库操作:支持原始 SQL 查询(query)、表数据查询(select)、插入(insert)、更新(update)、删除(delete)及 upsert 操作。提供丰富的过滤选项(eq/neq/gt/lt/like)、排序、分页等功能。
2. 向量搜索:基于 pgvector 扩展实现相似性搜索,需预先创建 embedding 列和匹配函数。支持自定义相似度阈值、返回数量,默认集成 OpenAI embedding 模型。
3. 表结构管理:可列出所有表(tables)和查看表结构(describe),便于快速了解数据库 schema。
4. 存储过程调用:通过 rpc 命令调用数据库函数,支持传入 JSON 参数。
显著优点
- 功能完整:覆盖 Supabase 核心 API 的主要使用场景,从简单查询到复杂的向量检索
- CLI 友好:命令参数设计直观,过滤条件采用
--eq "col:val"等易读格式 - 向量检索原生支持:内置 pgvector 集成,降低 AI 应用开发门槛
- 批量操作支持:insert 和 upsert 支持单条或多条 JSON 数组
潜在缺点与局限性
- 权限风险:默认使用 Service Role Key 绕过 RLS(Row Level Security),存在数据越权访问风险
- 无内置迁移工具:不包含数据库 schema 迁移/版本管理功能
- embedding 依赖外部服务:向量搜索需外部 OpenAI API Key,增加配置复杂度
- 错误处理不透明:文档未说明错误输出格式和退出码策略
- 无连接池管理:高并发场景下可能遇到连接限制
适合人群
- 需要快速操作 Supabase 数据库的开发者
- 构建 RAG(检索增强生成)应用的 AI 开发者
- 进行数据探索、原型验证的技术人员
- 熟悉 SQL 和命令行操作的后端工程师
常规风险
| 风险类型 | 说明 |
|---------|------|
| 密钥泄露 | Service Key 具有完全数据库权限,泄露可导致数据被清空或篡改 |
| RLS 绕过 | 默认配置无视行级安全策略,可能意外暴露敏感数据 |
| SQL 注入 | 直接执行原始 SQL 时若拼接用户输入存在注入风险 |
| 误操作数据 | update/delete 无事务确认机制,可能误删大量数据 |
| API 配额 | OpenAI embedding 调用可能产生意外费用 |