【问题标题】:How to prevent losing production data when changing my GraphQL schema in AWS Amplify?在 AWS Amplify 中更改我的 GraphQL 架构时如何防止丢失生产数据?
【发布时间】:2021-09-29 05:02:12
【问题描述】:

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

如何防止这种情况避免错误地避免生产数据?

【问题讨论】:

    标签: amazon-web-services graphql amazon-dynamodb aws-amplify aws-amplify-cli


    【解决方案1】:

    为防止您的 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

    【讨论】:

      猜你喜欢
      • 2021-05-21
      • 1970-01-01
      • 2020-01-05
      • 2019-05-14
      • 2016-08-01
      • 2022-08-09
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      相关资源
      最近更新 更多