用途:为 Convex 数据库提供自动级联删除能力。删除父文档时,按预先定义的规则自动删除所有关联子文档,避免产生孤儿记录。
主要能力:通过 defineCascadeRules 定义规则,每条规则形如 { to: "子表", via: "索引名", field: "外键字段" };提供原子(atomic,默认,单事务全有或全无)与分批(batched,按 batchSize 分块,默认 100)两种删除模式;deleteWithCascade(ctx, tableName, documentId) 返回各表删除数量的 DeleteSummary;支持 debug 日志。
使用方式:先安装 npm install @00akshatsinha00/convex-cascading-delete 与 npx convex component install @00akshatsinha00/convex-cascading-delete,再用 npx convex dev 验证。随后在 schema 中为每个参与级联的外键字段建立索引,在单独文件用 defineCascadeRules 定义规则,最后在 mutation 中 new CascadingDelete(components.convexCascadingDelete, { rules }) 并调用 deleteWithCascade。
适用场景:用户-帖子-评论、组织-团队-成员-项目等父子层级数据清理;需要审计时可记录删除摘要或改用软删除。
限制:外键字段必须建索引,否则无法高效查找子文档;原子模式在文档过多时会报 Transaction too large,需改用 batched;规则中字段名须与 schema 一致;循环引用虽可安全处理但建议保持无环层级。具体收费、价格与平台支持情况暂未提供。