微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 AWS Amplify 中更改我的 GraphQL 架构时如何防止丢失生产数据?

如何解决在 AWS Amplify 中更改我的 GraphQL 架构时如何防止丢失生产数据?

在我的 AWS Amplify 项目中,我使用带有多个 @model 指令的 GraphQL API。因此,Amplify 在我的 AWS 后端生成了多个 DynamoDB 表。现在,当删除这样的 @model重命名它时,旧的 DynamoDB 表将永久删除所有包含的数据

如何防止这种情况发生,避免误操作生产数据?

解决方法

为防止您的 DynamoDB 表被删除,您可以将 DeletionPolicy 设置为 Retain。不幸的是,默认情况下 Amplify 不会这样做。

因此,您可以像这样使用自定义 GraphQL 指令 @retain

  1. 安装变压器:npm install --save graphql-retain-transformer
  2. 编辑 amplify/backend/api/<YOUR_API>/transform.conf.json 并将 "graphql-retain-transformer" 附加到转换器字段:
"transformers": [
    "graphql-retain-transformer"
]
  1. 在您的 schema.graphql 文件中,将 @retain 指令附加到您要为其激活保留删除策略的所有 @model 类型:
type Todo @model @retain {
  id: ID!
  title: String!
  description: String
}

自定义指令的GitHub存储库: https://github.com/flogy/graphql-retain-transformer(如果喜欢请留下一个⭐️?)

关于它的更详细的博文: https://react-freelancer.ch/blog/amplify-retain-dynamodb-tables

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。