1

我希望我能很好地解释这一点。

因此,我创建了一个带有放大功能的反应应用程序并推送了我的架构,然后继续修改并创建了我需要的各种解析器,因为我发现如果我再次执行“放大推送”,因为我更改或修改了添加一个新字段,所有解析器也将是我开始直接在 Appsync 控制台中更新我的架构,这样我就不必每次想要更改某些内容时都重做解析器。现在不幸的是,我以某种方式执行了放大推送,它再次删除了我所有的解析器。所以我的问题是......有没有办法将我的shema恢复到以前的状态并带回所有丢失的解析器?

谢谢。

4

1 回答 1

0

首先,您是否对解析器进行了版本控制?我没有 AppSync 版本您的解析器或保留备份,但您可能想立即联系服务团队以查看他们是否可以恢复仅存在于 AppSync API 中的任何解析器。

第二:您是更改了默认解析器还是创建了新解析器?

如果要覆盖默认解析器,可以在/<project_root>/amplify/backend/api/<your_api_name>/resolvers. (如果此目录不存在,请创建此目录。)

以下是有关覆盖解析器的官方 Amplify 文档。链接后直接有一个页面

假设你有一个简单的 schema.graphql……</p>

type Todo @model {
  id: ID!
  name: String!
  description: String
}

并且您想要更改将在项目编译时生成的 Query.getTodo 解析器的请求映射模板的行为。为此,您将在 API 项目的解析器目录中创建一个名为 Query.getTodo.req.vtl 的文件。下次您运行 amplify push 或 amplify api gql-compile 时,将使用您的解析器模板而不是自动生成的模板。您可以类似地创建 Query.getTodo.res.vtl 文件来更改解析器的响应映射模板的行为。

https://aws-amplify.github.io/docs/cli-toolchain/graphql#overwriting-resolvers

还有关于创建自定义解析器并将它们作为自定义资源附加的文档。https://aws-amplify.github.io/docs/cli-toolchain/graphql#overwriting-resolvers

于 2019-10-22T00:38:46.467 回答