核心数据迁移到一对一关系到多对多关系

时间:2010-05-04 23:53:01

标签: core-data migration relationships core-data-migration mapping-model

我有一个部署的应用程序,用于对传感器的测量结果进行采样(例如,温度°C,压力kPa)。用户可以创建实验并收集样本。每个样本都存储为Run,以便从Experiment到Run有一对多的关系。为了提高性能,Run与Data实体(存储实际原始数据的位置)之间存在一对一的关系;这允许加载一些Run属性而不必加载大量数据。

我们的大多数传感器都有多个测量值,因此存储实际采样的所有数据会很不错。但这意味着Run< --->数据关系需要成为Run< - >>数据(使用Xcode的约定)。

我面临着尝试将数据从旧的Run to-one Data模型迁移到新的Run to-many Data模型。可以使用Mapping Models完成吗?如果是这样,有没有人有任何示例指针?如果没有,有没有人有任何指示如何做到这一点的例子?

感谢您的任何指示或建议。

2 个答案:

答案 0 :(得分:3)

迁移应该很容易,自动迁移将起作用。最糟糕的情况是,它需要一个映射模型,但我怀疑它将通过启用自动迁移“正常工作”。

答案 1 :(得分:1)

我最终需要多次子类化NSEntityMigrationPolicy。这是必要的,因为属性从/向不同的实体移动,添加了几个抽象级别以支持更通用的模型。同样重要的是映射模型中实体映射的排序。

最终,我必须为-addPersistentStoreType设置选项:配置:URL:options:error:to:

    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                         [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, nil];

因此省略了NSInferMappingModelAutomaticallyOption。