AWS Amplify执行amplify push时@connection指令无法识别错误如何解决?
问题原因
AWS Amplify 默认使用的 GraphQL Transformer v2 已废弃旧版的@connection关联指令,因此执行amplify push时会提示无法识别该指令。
解决方案
方案1:迁移到新版关联指令(推荐)
根据你的业务场景,CartProduct通过productID外键关联单个Product,属于子表指向父表的关联关系,直接将@connection替换为@belongsTo即可:
type CartProduct @model @auth(rules: [{allow: public}]){ id: ID! userSub: String! quantity: Int! option: String productID: ID! product: Product @belongsTo(fields: ["productID"]) }
其他常见关系的替换规则参考:
- 父表指向一对一的子表:使用
@hasOne - 父表指向一对多的多个子表:使用
@hasMany - 多对多关联:使用
@manyToMany
修改完成后重新执行amplify push即可正常部署。
方案2:临时切回旧版转换器(不推荐)
如果暂时不想调整Schema,可以手动指定使用v1版本的GraphQL转换器:
- 打开项目
amplify/cli.json文件 - 找到
graphqlTransformerVersion配置项,将值修改为1 - 重新执行
amplify push
该方案仅为临时兼容方案,旧版转换器后续将停止维护,建议尽快迁移到新版指令。
内容的提问来源于stack exchange,提问作者antsmasher
相关产品推荐
相关产品推荐

