2017-02-13 64 views
0

我有一個使用AWS Mobile iOS SDK的移動應用程序,它已在生產中。該應用使用DynamoDB直接存儲和檢索用戶數據(兩者之間沒有任何API層)。現在我想通過添加一個新字段來修改應用中現有的DynamoDB對象模型。新的應用程序版本可以很好地用於存儲和檢索基於此新DynamoDB模型的數據。我的問題是這個新字段的添加是否會影響使用舊的DynamoDB對象模型的當前應用程序版本?由於丟失了舊的DynamoDB對象模型中的字段,它會導致當前應用程序版本崩潰嗎?在iOS應用程序中修改DynamoDB對象模型

例子:

比方說,我有一個類名爲MyUserObject驅動器從AWSDynamoDBObjectModel,與字段的名稱「和「電子郵件」。

@interface MyUserObject : AWSDynamoDBObjectModel <AWSDynamoDBModeling> 

@property (nonatomic, strong) NSString *name; 
@property (nonatomic, strong) NSString *email; 

@end 

現在,我想補充的MyUserObject類另一場「國家」:

@interface MyUserObject : AWSDynamoDBObjectModel <AWSDynamoDBModeling> 

@property (nonatomic, strong) NSString *name; 
@property (nonatomic, strong) NSString *email; 
@property (nonatomic, strong) NSString *country; 

@end 

那麼,這會增加使用舊DynamoDB對象模型影響當前應用程序的版本?

回答

0

簡短的回答是,沒有。

DynamoDB是一個無模式存儲。

  • 在讀:如果客戶的AWSDynamoDBObjectModel比什麼DynamoDB反之亦然是有更多的屬性,將額外的屬性被忽略。
  • 寫入期間:有012個不同的保存行爲選項,如here。默認的AWSDynamoDBObjectMapperSaveBehaviorUpdate會使未建模的屬性不受影響,並且對於您的用例應該可以正常工作。
相關問題