You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除关联ActivateToken后Grafbase的User集合无法显示问题求助

问题解决办法

问题分析

删除ActivateToken后用户从集合列表消失但可通过ID查询,核心原因大概率是列表查询逻辑依赖了已删除的关联令牌,或是Grafbase的单向关系导致的隐含过滤行为。

具体解决方案

1. 修正列表查询语句

检查你在应用中查询User列表的GraphQL语句,确认是否添加了依赖ActivateToken的过滤条件,比如类似:

query Users {
  userList(where: { activateTokens: { exists: true } }) {
    id
    name
    email
  }
}

如果存在这类条件,删除where子句中关联activateTokens的部分——激活完成后令牌已被清理,该条件会过滤掉已激活的用户。

2. 定义双向关联关系

在User模型中添加反向关联字段,明确与ActivateToken的双向关系,避免Grafbase对单向关系的隐含处理:

// @ts-ignore
const User = g
    .model('User', {
        name: g.string().length({ min: 2, max: 100 }).optional(),
        email: g.string().unique(),
        password: g.string().optional(),
        active: g.boolean().optional(),
        allowReset: g.boolean().optional(),
        avatarUrl: g.url().optional(),
        // 添加反向关联
        activateTokens: g.relation(() => ActivateToken).list().optional()
    })
    .auth((rules) => {
        rules.public().read()
        rules.private().create().delete().update()
    })

更新Schema后重新部署Grafbase,确保关系定义完整。

3. 检查控制台过滤条件(如果是控制台列表异常)

如果是在Grafbase控制台的User集合列表看不到数据,检查控制台顶部的过滤栏,确认是否存在activateTokens exists这类筛选条件,点击清除过滤即可显示所有用户。

4. 清理Grafbase缓存

若上述操作无效,尝试清理Grafbase的缓存:

  • 进入Grafbase项目控制台
  • 找到「Settings」→「Cache」选项
  • 点击「Clear Cache」按钮后重新查询列表

内容的提问来源于stack exchange,提问作者alketraz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 03:15:16