新更新的数据库新增了字段,使用第三方库MagicalRecord进行coreData操作,对于数据库的迁移在第三方库中也做处理,但是在版本8.1,8.4版本上出现数据库更新失败。
我最终的解决方案,就是简单粗暴的在9以下版本在更新的时候进行数据库删除创建 操作
下面是一些方法,来源网络。
如何处理 coreData数据库迁移表升级-新增字段 ,使原数据源都保存 ?
如果只是直接添加字段的话那么会得到下面的报错:
This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation 。
解决方式:
-
选中你的mydata.xcdatamodeld文件,选择菜单editor->Add Model Version 比如取名:mydata2.xcdatamodel
2.设置当前版本, 选择上级mydata.xcdatamodeld ,在inspector中的Versioned Core Data Model选择Current模版为mydata2
3.修改新数据模型mydata2,在新的文件上添加字段及表。(注:这个步骤顺序一定要注意,千万不能在原mydata.xcdatamodeld先直接添加了字段,再添加新版本,这样的话会一直报错,当时我就因为这个步骤忽略了导致找了半天也没找到原因) -
在appdelegate中加如 options:optionsDictionary 这个选项参数
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
网友评论