我有一个使用AWS SDK的移动应用程序,它已经在生产中了。该应用程序使用DynamoDB直接存储和检索用户数据(中间没有任何API层)。现在,我想通过添加一个新的字段来修改应用程序中现有的DynamoDB对象模型。新的应用程序版本将非常好地根据这个新的DynamoDB模型存储和检索数据。我的问题是,新字段的添加是否会影响使用旧的DynamoDB对象模型的当前应用程序版本?它会因为旧的DynamoDB对象模型中缺少字段而导致当前的应用程序版本崩溃吗?
示例:
假设我有一个名为MyUserObject驱动器的AWSDynamoDBObjectModel类,其中包含字段“name”和“email”。
@interface MyUserObject : AWSDynamoDBObjectModel <AWSDynamoDBModeling>
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *email;
@end现在,我想在MyUserObject类中添加另一个字段“country”:
@interface MyUserObject : AWSDynamoDBObjectModel <AWSDynamoDBModeling>
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *email;
@property (nonatomic, strong) NSString *country;
@end那么,这个添加会影响使用旧的DynamoDB对象模型的当前应用版本吗?
发布于 2017-02-13 17:58:39
简单的回答是,不。
DynamoDB是一个无模式存储。
AWSDynamoDBObjectModel比DynamoDB中的属性多,反之亦然,则忽略额外的属性。AWSDynamoDBObjectMapperSaveBehaviorUpdate将未建模的属性保留在不受影响的情况下,对于您的用例来说应该很好。https://stackoverflow.com/questions/42204663
复制相似问题