更新schema.graphql后,Dynamo DB在表中未显示正确的字段

时间:2019-06-27 05:18:19

标签: reactjs amazon-dynamodb aws-amplify aws-appsync

我的React项目中有一个schema.graphql文件。 当我更新架构并删除属性时,dynamoDB表不会更改。新字段不会出现,而我删除的旧字段会保留。 我尝试过amplify push次,但没有任何变化。 我该怎么做才能解决这个问题或同步表格?

谢谢。

1 个答案:

答案 0 :(得分:1)

当前,AWS Amplify不支持数据自动迁移。您将会看到无模式NoSQL表。 Quoting the docs

  

表是关系数据库和DynamoDB中的基本数据结构。关系数据库管理系统(RDBMS)要求您在创建表时定义表的架构。相反, DynamoDB表是无模式的-除主键外,您无需在创建表时定义任何属性或数据类型。

您需要停止考虑Amplify作为RDBMS为您生成的资源,而开始考虑使用NoSQL数据库。 Amplify使用巧妙的技巧让您创建类似关系的数据方案。我建议您阅读DynamoDB文档的core components部分,以了解什么是主索引和(全局/本地)辅助索引。然后,观看this video,其中解释了Amplify如何创建表之间的关系。 (顺便说一句,大多数设计良好的DynamoDB后端只有一个single table-因此只有一个@model指令而没有@connection指令。)

这是怎么回事,如果您执行amplify push,则所做的更改将应用​​于AppSync GraphQL端点。 (您可能要在控制台中进行验证)。但是,DynamoDB中的现有数据保持不变。如果创建新数据,它将遵循您的schema.graphql文件的架构。