Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Core data 一对多关系的核心数据迁移_Core Data_Migration_Relationships_Core Data Migration_Mapping Model - Fatal编程技术网

Core data 一对多关系的核心数据迁移

Core data 一对多关系的核心数据迁移,core-data,migration,relationships,core-data-migration,mapping-model,Core Data,Migration,Relationships,Core Data Migration,Mapping Model,我有一个已部署的应用程序,可以从传感器中采集测量数据(例如,温度°C、压力kPa)。用户可以创建实验和收集样本。每个样本都存储为一次运行,因此从实验到运行之间存在一对多的关系。为了提高性能,Run与数据实体(存储实际原始数据的地方)有一对一的关系;这允许加载某些运行属性,而不必加载大量数据 我们的大多数传感器都有多个测量值,所以最好存储所有实际采样的数据。但这意味着运行数据关系需要变成运行>数据(使用Xcode的约定) 我面临着尝试将数据从旧运行迁移到一个数据模型,再从新运行迁移到多个数据模型。

我有一个已部署的应用程序,可以从传感器中采集测量数据(例如,温度°C、压力kPa)。用户可以创建实验和收集样本。每个样本都存储为一次运行,因此从实验到运行之间存在一对多的关系。为了提高性能,Run与数据实体(存储实际原始数据的地方)有一对一的关系;这允许加载某些运行属性,而不必加载大量数据

我们的大多数传感器都有多个测量值,所以最好存储所有实际采样的数据。但这意味着运行数据关系需要变成运行>数据(使用Xcode的约定)

我面临着尝试将数据从旧运行迁移到一个数据模型,再从新运行迁移到多个数据模型。这可以通过映射模型实现吗?如果有的话,有没有人能提供一些例子?如果没有,是否有人有任何关于如何做到这一点的例子


感谢您的指点和建议。

迁移应该足够简单,自动迁移可以正常工作。最糟糕的情况是,它需要一个映射模型,但我怀疑通过启用自动迁移,它将“正常工作”。

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

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

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

因此省略了NSinFermappingModelautomaticaly选项。

谢谢,马库斯。唉,从我提出这个问题到现在,这个模式已经变得相当复杂了。然而,仔细阅读(即,通读和仔细阅读)您的核心数据手册已经帮了大忙——相关的迁移代码也帮了大忙。我担心我很快就会子类化NSEntityMigrationPolicy。轻量级迁移确实支持它: