核心数据模型版本控制和数据迁移

Posted

技术标签:

【中文标题】核心数据模型版本控制和数据迁移【英文标题】:Core Data Model Versioning and Data Migration 【发布时间】:2012-12-13 06:32:29 【问题描述】:

我想更新应用程序版本,但是在新版本中我在核心数据中添加了两个新属性,我想将数据从旧版本迁移到新版本。我的步骤:

    选择.xcdatamodeld文件,然后编辑器->添加模型版本 设计 > 数据模型 > 设置当前版本。

    修改选项

     NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:  
                                        [NSNumber numberWithBool:YES],  NSMigratePersistentStoresAutomaticallyOption,  
                                        [NSNumber numberWithBool:YES],   NSInferMappingModelAutomaticallyOption, nil];  
     if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) 
    

但是我的新版本没有找到旧版本的任何数据。 如何修改它。

【问题讨论】:

【参考方案1】:

我发现我的错误:PushNoticationModal.sqlite 与名称 PushNoticationModel.xcdatamodel 不同,你看到 PushNoticationModal 不像 PushNoticationModel。

当你只构建一个 sqlite 时,名称 PushNoticationModal.sqlite 与 PushNoticationModel.xcdatamodel 不同,你的应用程序也可以运行。但是当你构建迁移时,你应该保持不变

【讨论】:

以上是关于核心数据模型版本控制和数据迁移的主要内容,如果未能解决你的问题,请参考以下文章

核心数据版本控制(轻量级迁移)问题

核心数据版本控制 - 需要多个映射模型

CoreData 版本控制和阻塞轻量级迁移

核心数据:何时启用轻量级迁移?

核心数据和累积的轻量级迁移

在非连续版本之间迁移时出现核心数据迁移错误