我在我的react项目中有一个schema.graphql文件。当我更新模式并删除属性时,DynamoDB表不会更改。新字段没有出现,我删除的旧字段仍保留下来。我尝试过几次amplify push
,但没有任何改变。我该怎么做才能解决这个问题或同步表?
谢谢。
当前AWS放大不支持数据的自动迁移。您所看到的是使用示意性的NOSQL表。引用文档:
表是关系数据库和DynamoDB中的基本数据结构。关系数据库管理系统(RDBMS(要求您在创建表格时定义表的架构。相比之下, dynamodb表是示意性 - 比主键,您无需在表创建时间定义任何属性或数据类型。
您需要停止思考放大为您作为RDBMS生成的资源,并开始根据NOSQL数据库进行思考。Amplify使用一个巧妙的技巧来使您创建关系呈现数据方案。我建议您阅读DynamoDB文档的核心组件一部分,以了解哪些主要和(全局/本地(辅助索引是什么。之后,观看此视频,该视频解释了放大如何创建表之间的关系。(顺便说一句,最精心设计的DynamoDB后端只有一个表 - 因此只有一个@model
指令,而没有@connection
指令。(
发生的事情是,如果您执行amplify push
,则将更改应用于AppSync GraphQl端点。(您可能需要在控制台中验证这一点(。但是,DynamoDB中的现有数据保持不变。如果创建新数据,它将遵循schema.graphql
文件的模式。