【问题标题】:Modifying DynamoDB object model in iOS app在 iOS 应用程序中修改 DynamoDB 对象模型
【发布时间】:2017-07-01 11:23:09
【问题描述】:

我有一个使用 AWS 移动 iOS 开发工具包的移动应用程序,该应用程序已投入生产。该应用程序使用 DynamoDB 直接存储和检索用户数据(中间没有任何 API 层)。现在我想通过添加一个新字段来修改应用程序中现有的 DynamoDB 对象模型。新的应用程序版本可以完美地基于这个新的 DynamoDB 模型存储和检索数据。我的问题是,添加新字段是否会影响使用旧 DynamoDB 对象模型的当前应用程序版本?是否会因为旧的 DynamoDB 对象模型中缺少字段而导致当前应用版本崩溃?

示例:

假设我有一个来自 AWSDynamoDBObjectModel 的名为 MyUserObject 的驱动器类,其中包含字段“名称”和“电子邮件”。

@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 对象模型的当前应用版本?

【问题讨论】:

    标签: ios objective-c amazon-web-services amazon-dynamodb


    【解决方案1】:

    简短的回答是,不。

    DynamoDB 是一种无模式存储。

    • 在读取期间:如果客户端的 AWSDynamoDBObjectModel 的属性比 DynamoDB 中的属性多,反之亦然,则忽略多余的属性。
    • 在写入期间:here 记录了 4 种不同的保存行为选项。默认值 AWSDynamoDBObjectMapperSaveBehaviorUpdate 不会影响未建模的属性,应该可以很好地用于您的用例。

    【讨论】:

      猜你喜欢
      • 2011-09-19
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 2012-01-21
      • 1970-01-01
      相关资源
      最近更新 更多