CoreData数据库迁移问题

新更新的数据库新增了字段,使用第三方库MagicalRecord进行coreData操作,对于数据库的迁移在第三方库中也做处理,但是在版本8.1,8.4版本上出现数据库更新失败。

我最终的解决方案,就是简单粗暴的在9以下版本在更新的时候进行数据库删除创建 操作

下面是一些方法,来源网络。

如何处理 coreData数据库迁移表升级-新增字段 ,使原数据源都保存 ?
如果只是直接添加字段的话那么会得到下面的报错:
This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation 。
解决方式:

  1. 选中你的mydata.xcdatamodeld文件,选择菜单editor->Add Model Version 比如取名:mydata2.xcdatamodel
    2.设置当前版本, 选择上级mydata.xcdatamodeld ,在inspector中的Versioned Core Data Model选择Current模版为mydata2
    3.修改新数据模型mydata2,在新的文件上添加字段及表。(注:这个步骤顺序一定要注意,千万不能在原mydata.xcdatamodeld先直接添加了字段,再添加新版本,这样的话会一直报错,当时我就因为这个步骤忽略了导致找了半天也没找到原因)

  2. 在appdelegate中加如 options:optionsDictionary 这个选项参数
    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:

                         [NSNumber numberWithBool:YES],
    
                         NSMigratePersistentStoresAutomaticallyOption,                             
    
                         [NSNumber numberWithBool:YES],
    
                         NSInferMappingModelAutomaticallyOption, nil];

你可能感兴趣的:(CoreData数据库迁移问题)