SuperAPI AI 工具集

convex

部署与运维

查看项目

更新于 10-17 19:40

技能介绍

用途

该技能用于搭建、保护和优化 Convex 后端。适用场景包括 Convex 项目初始化、schema 与索引设计、查询与变更函数编写、在 Convex 函数中做认证检查,以及处理环境变量与部署。

主要能力

  • 项目初始化:通过命令行完成登录、创建项目与开发部署、写入 .env.local。
  • 环境与部署:设置服务端密钥,区分开发与生产部署。
  • 函数安全:要求在每个公开 query、mutation、action 内校验用户身份与资源归属,仅服务端调用的逻辑使用 internalQuery/internalMutation。
  • 参数校验:所有参数使用 v.* validators。
  • 读取规范:在选择性索引上使用 .withIndex(...),避免对大表使用 .filter;为每种访问模式在 schema.ts 定义索引;用 .take(n) 或 .paginate() 限制读取;只返回客户端需要的字段。
  • 性能优化:用 npx convex insights --prod --details 获取线上证据,提取函数名、警告类型、按表的文档数与字节数,以及是失败还是接近上限,优先处理“读取文档多、返回文档少”的高热点。

使用方式

安装与基础命令:

npx convex login                 # 用户在浏览器中确认
npx convex dev --once            # 创建项目与开发部署,写入 .env.local
npx convex env set KEY value     # 服务端密钥(开发);加 --prod 用于生产
npx convex deploy                # 生产部署

技能强调保持 dev 与 prod 两个部署分离,本地开发不要指向生产数据。

优化流程:将每个热点导出映射到 convex/** 与客户端调用点,先诊断再修补。常见原因包括:缺少选择性 .withIndex 的 .filter 或 .collect;索引仅按租户缩小范围仍扫描数千行;逐行获取关联数据(N+1);热点 mutation 上的全量重算;作业或定时任务每次扫描全表;同一文档的并发 patch 造成 OCC 冲突。

最小改动方向:为查询新增所用索引;在补充数据前使用 .take/paginate;对列表预览做反规范化,仅在详情页取完整行;用增量计数器替代全量重算;作业使用游标加每次运行上限;跳过无变化的 patch 并合并同文档写入;把高变更状态移到更窄的表。

验证:运行项目的类型检查、测试与构建,并执行 npx convex codegen;部署后复跑 insights,报告热点函数、根因、改动、预期的读取/字节/OCC 影响与验证结果。

限制

资料未提供该技能的图形界面、价格、支持平台或版本兼容信息,暂未提供。