核心数据迁移来自多个版本

时间:2012-05-10 09:18:41

标签: ios core-data-migration

问题

  • 我有4个版本的核心数据模型(轻量级迁移)
  • 在版本5中,需要手动创建映射模型(将数据类型从nsnumber更改为nsstring)
  • 从v4迁移到v5可以正常使用映射模型,但对于具有不同版本(1 - 3)的用户,如何处理此迁移?

我已阅读了一些SO帖子Core Data Migration error when migrating between non-consecutive versions,并尝试使用那里提到的progressive migration,但在干净安装时失败,因为在progressivelyMigrateURL:

NSDictionary *sourceMetadata = 
  [NSPersistentStoreCoordinator metadataForPersistentStoreOfType:type
                                                             URL:sourceStoreURL
                                                           error:error];
  if (!sourceMetadata) return NO;

并在- (NSPersistentStoreCoordinator*)persistentStoreCoordinator;

if (![self progressivelyMigrateURL:url
                              ofType:NSXMLStoreType
                             toModel:mom
                               error:&error]) {
    [[NSApplication sharedApplication] presentError:error];
    return nil;
  }
  //END:progressivelyMigrateCall
  //START:persistentStoreCoordinator

  if (![persistentStoreCoordinator addPersistentStoreWithType:NSXMLStoreType
                                                configuration:nil
                                                          URL:url
                                                      options:nil
                                                        error:&error]) {...}

使addPersistentStoreWithType:无法访问

我是否需要更改任何内容才能使其正常工作?

不确定我是否需要完成所有这些工作,因为我已经阅读了一些评论here声明核心数据会自动完成所有这些工作,但还找不到任何文档。

0 个答案:

没有答案