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

Hasura创建computed field报no schema has been selected错误如何解决

问题解决方案

报错原因

该报错是PostgreSQL执行函数创建语句时未明确指定归属schema,且当前会话的search_path参数未包含可写入的目标schema导致的。

解决步骤

1. 修正SQL函数写法

给函数和表加上明确的schema前缀,同时注意驼峰字段名需要用双引号包裹(PostgreSQL默认会将未加双引号的标识符转为小写,会导致找不到驼峰命名的字段)。如果你的users表存放在默认的public schema下,修正后的SQL如下:

CREATE FUNCTION public.author_full_name(user_row public.users)
RETURNS TEXT AS $$
  SELECT user_row."firstName" || ' ' || user_row."lastName"
$$ LANGUAGE sql STABLE;

如果你的users表在其他schema下,把上述SQL中的public替换为实际的schema名称即可。

2. Hasura控制台执行配置

在Hasura控制台运行SQL时,需要提前配置正确的执行参数:

  • 进入「Data」页面选择对应的数据源,点击顶部「SQL」标签
  • 在SQL输入框下方的「Schema」下拉菜单中,选择users表所在的schema
  • 勾选「Track this function」选项,方便后续直接绑定为computed field
  • 执行SQL即可完成函数创建

3. 权限排查(若仍报错)

如果执行后依然有权限相关报错,可先给数据库用户授予对应schema的创建权限:

GRANT CREATE ON SCHEMA public TO <Hasura使用的数据库用户名>;

Hasura默认使用的数据库用户通常为postgres或者hasura_default,按需替换即可。

后续Computed Field绑定操作

函数创建完成后,进入users表的「Modify」页面,找到「Computed fields」板块,点击「Add computed field」,自定义字段名称(例如full_name),选择刚才创建的author_full_name函数,保存后即可使用该计算字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:30:02