SuperAPI AI 工具集

manage-database-usage

数据与分析

查看项目

更新于 10-16 06:19

技能介绍

用途:manage 数据库是带 Git 式版本管理的 Doltgres 实例(PostgreSQL),所有读写必须在正确分支上进行,否则会操作错误数据。分支命名上,每个项目的主分支为 <tenantId><projectId>main,自定义分支为 <tenantId><projectId><branchName>;连接默认停在空的主/根分支,操作前必须签出对应项目分支。

主要能力与用法按代码位置选择机制:在 /manage 路由处理器中用 c.get('db'),由 branchScopedDbMiddleware 自动签出分支、注入 Drizzle 客户端、成功时自动提交、结束后签出 main 并释放连接;在 /run、/evals、服务类或其他包中,使用 @inkeep/agents-core 的 withRef(manageDbPool, resolvedRef, (db) => ...),读操作省略选项,写操作传 { commit: true, commitMessage },失败时自动回滚未提交改动。可在单个 withRef 内批量执行多个操作,复用同一连接和签出。

获取 resolvedRef:Hono 路由用 c.get('resolvedRef'),Agent 运行时用 this.executionContext.resolvedRef,服务参数直接传入;也可用 getProjectScopedRef 与 resolveRef 手动解析。ResolvedRef 含 type、name、hash 三个字段。规则:/manage 路由内始终用 c.get('db'),不要直接用全局 manageDbClient,也不要手动提交;withRef 会自行获取与释放连接。相关文件包括 branchScopedDb.ts、ref-scope.ts、ref-middleware.ts、ref-helpers.ts、dolt-schemas.ts、manageDbPool.ts、manageDbClient.ts。