执行hasura metadata export导出元数据失败,sudo导出文件无法编辑求助
Hasura元数据导出报错及文件权限问题解决
问题概述
执行hasura metadata export命令导出Hasura元数据时触发解析错误,使用sudo hasura metadata export虽能成功导出,但生成的文件无普通用户编辑权限。
报错信息
FATA[0001] failed to export metadata: cannot export actions from metadata: error parsing metadata object: actions file: actions.yaml error: error in converting metadata to sdl: exit status 4:
复现步骤
- 按照Hasura官方文档安装Hasura CLI;
- 下载官方docker-compose文件;
- 依次执行
docker-compose up -d和hasura metadata export命令后触发问题。
解决方案
1. 匹配Hasura CLI与实例版本
CLI版本与Hasura实例版本不兼容是常见触发原因:
- 执行
hasura version查看CLI版本; - 访问Hasura控制台(默认地址
http://localhost:8080)查看实例版本; - 若版本不一致,卸载当前CLI,重新安装与实例匹配的版本。
2. 修复文件权限(避免使用sudo)
sudo执行生成的文件属于root用户,导致普通用户无法编辑,按以下步骤修复:
# 切换到Hasura项目工作目录 cd /path/to/your/hasura/project # 将目录及所有文件权限归属当前用户 sudo chown -R $USER:$USER .
之后直接执行hasura metadata export即可,无需sudo。
3. 排查Actions元数据异常
若版本匹配后仍报错,说明Actions的SDL存在解析问题:
- 登录Hasura控制台,进入「Actions」页面,逐一检查所有Actions的SDL定义是否有语法错误;
- 临时删除疑似有问题的Actions(先备份实例数据),重新执行导出命令,定位具体出错的Action;
- 修复对应Action的SDL语法后,重新导出元数据。
4. 控制台直接导出替代方案
如果CLI导出始终有问题,可通过控制台导出:
- 登录Hasura控制台,点击顶部「设置」图标;
- 选择「导出元数据」,下载ZIP压缩包;
- 解压ZIP包后即可编辑元数据文件。
内容的提问来源于stack exchange,提问作者Francisco Pessoa
相关产品推荐
相关产品推荐

