CoreData的数据迁移
CoreData的数据迁移
很多人说CoreData坑多,现在才感觉到,今天上午写代码的时候,发现了一个大问题.
过程如下,之前我自己给coredata的实体添加了几个字段,后来网上的一个用户说我们的app进去后闪退,但是我自己从新冲appstore下载了一个发现并没有哪些问题.于是这个事就过去了.第二天我run我自己的新程序的时候,发现coredata一保存在save方法的时候,就直接闪退.连错误都不报.导致我很崩溃... 网上一查,原来是要数据迁移.下面是我的一些记录,希望能帮助到别人.
其实很多简单的情况,不用这么麻烦,Coredata提供了轻量级的自动数据迁移,比如以下三个情况会自动进行:
1.简单的增加一个字段
2.把一个必填字段改为可选字段
3.把可选字段改为必填字段(但一定要定义默认值)
1.升级数据库模型:选中你的mydata.xcdatamodeld文件,选择菜单editor->Add Model Version 比如取名:mydata2.xcdatamodel
2.设置当前版本:选择上级mydata.xcdatamodeld ,在inspector中的Versioned Core Data Model选择Current模版为mydata2(inspector界面,即为XCode工作区右侧工具栏)
3.修改新数据模型mydata2,在新的文件上添加,修改或删除字段及表
4.在程序启动时添加如下代码:NSDictionary *optionsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES],
NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES],
NSInferMappingModelAutomaticallyOption, nil];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:storeUrl
options:optionsDictionary
error:&error]) {
NSLog(@”failed to add persistent store with type to persistent store coordinator”);
}
5.重启一下XCode
参考文章: 升级app时coreData的处理及注意事项 使用CoreData的轻量级自动数据迁移 Working with Core Data: Schema Versioning and Lightweight Migrations 小结CoreData的Migration coredata 数据迁移 CoreData数据迁移
相关文章
- DSC:数仓SQL脚本迁移的神奇工具
- 数据库实践丨使用MTK迁移Mysql源库后主键自增列导致数据无法插入问题
- 云小课|云小课带你快速掌握云数据迁移CDM
- Hbase实用技巧:全量+增量数据的迁移方法
- Redis在线数据迁移工具redis-migrate-tool详解,轻松实现redis集群之间的数据同步
- 数据不够怎么训练深度学习模型?不妨试试迁移学习
- 数据迁移
- 将数据从MySQL迁移到Oracle的注意事项
- 【变狗为猫】伯克利图像迁移cycleGAN,猫狗互换效果感人
- eclipse到Android Studio的项目迁移
- Django数据迁移失败问题记录 --managed = False不知道是不是不迁移的意思有空试试
- Mysql 跨库数据迁移 -- python 脚本
- Mysql 百万级数据迁移实战笔记
- gitlab迁移版本库(保留原版本库的所有内容)
- 阿里云内存数据库Tair新一代集群无感数据迁移
- 微服务实践(七):从单体式架构迁移到微服务架构
- DRDS向ADS数据迁移指南
- 【SQL Server数据迁移】64位的机器:SQL Server中查询ORACLE的数据
- cs231 Style Transfer PyTorch(图像风格迁移)
- 阿里云发布移动数据中心“闪电立方”:为PB级海量数据迁移而生
- 京东云开发者|京东云RDS数据迁移常见场景攻略
- 国际计费系统基于Sharding-Proxy大数据迁移方案实践
- oracle 数据库数据迁移解决方案
- 迁移到 Linux :入门介绍 | Linux 中国
- abp架构添加实体并使用迁移功能生成表
- VisualSVN Server仓库迁移到Linux(包含所有版本, 权限,用户信息)
- 腾讯云数据库TDSQL——博客数据库迁移实践
- SVN服务器从Windows迁移到LInux