我有一个部署的应用程序,用于对传感器的测量结果进行采样(例如,温度°C,压力kPa)。用户可以创建实验并收集样本。每个样本都存储为Run,以便从Experiment到Run有一对多的关系。为了提高性能,Run与Data实体(存储实际原始数据的位置)之间存在一对一的关系;这允许加载一些Run属性而不必加载大量数据。
我们的大多数传感器都有多个测量值,因此存储实际采样的所有数据会很不错。但这意味着Run< --->数据关系需要成为Run< - >>数据(使用Xcode的约定)。
我面临着尝试将数据从旧的Run to-one Data模型迁移到新的Run to-many Data模型。可以使用Mapping Models完成吗?如果是这样,有没有人有任何示例指针?如果没有,有没有人有任何指示如何做到这一点的例子?
感谢您的任何指示或建议。
答案 0 :(得分:3)
迁移应该很容易,自动迁移将起作用。最糟糕的情况是,它需要一个映射模型,但我怀疑它将通过启用自动迁移“正常工作”。
答案 1 :(得分:1)
我最终需要多次子类化NSEntityMigrationPolicy。这是必要的,因为属性从/向不同的实体移动,添加了几个抽象级别以支持更通用的模型。同样重要的是映射模型中实体映射的排序。
最终,我必须为-addPersistentStoreType设置选项:配置:URL:options:error:to:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, nil];
因此省略了NSInferMappingModelAutomaticallyOption。