使用AWS Amplify时GraphQL设默认值出错,无法执行push/pull
解决AWS Amplify GraphQL API默认值设置及后续报错问题
1. 字段默认值的正确写法
你用=设置默认值的语法不符合Amplify GraphQL的规范,Amplify基于AppSync,需要使用@default指令来定义字段默认值,修改后的Schema如下:
type User @model @auth(rules: [{allow: public}, {allow: private, operations: [read]}]) { id: ID! isFavorite: Boolean logo: String status: String @default(value: "active") # 正确的默认值设置方式 }
2. 删除错误行后仍报错的处理方案
删除错误行后执行amplify push/pull仍报错,是因为本地Amplify状态与云端已出现不一致,按以下步骤排查修复:
- 执行
amplify status查看当前资源状态,确认API部分的冲突点 - 执行
amplify api gql-compile重新编译本地GraphQL Schema,确保语法无问题 - 若编译正常仍报错,执行
amplify api update,重新配置API并选择保留现有数据,完成后再执行amplify push - 极端情况可删除本地
amplify/backend/api/<你的API名称>目录,再执行amplify pull拉取云端最新配置,修改Schema后重新推送
内容的提问来源于stack exchange,提问作者Marc
相关产品推荐
相关产品推荐

