我有一个使用已投入生产的AWS Mobile iOS 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
现在我想添加另一个字段&#39; country&#39;在MyUserObject类中:
@interface MyUserObject : AWSDynamoDBObjectModel <AWSDynamoDBModeling>
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *email;
@property (nonatomic, strong) NSString *country;
@end
那么,这个添加是否会影响使用旧的DynamoDB对象模型的当前应用版本?
答案 0 :(得分:0)
简短的回答是,不。
DynamoDB是一个无架构的商店。
AWSDynamoDBObjectModel
具有的属性多于DynamoDB中的属性,反之亦然,则会忽略额外的属性。AWSDynamoDBObjectMapperSaveBehaviorUpdate
使未建模的属性不受影响,应该可以正常使用。