iOS CoreData数据迁移-轻量级迁移
2016-03-03 15:18
459 查看
我们在开发或者产品升级的时候经常会遇到托管模型的结构化修改(也就是表的结构改变),那么我们就需要数据迁移到新的模型中。
轻量级迁移方式
默认的迁移方式
迁移管理器迁移方式
现在记录一下轻量级迁移。
轻量级数据迁移适合一下情况:
增加一个字段
必填字段改为可选字段
可选字段改为必填字段(设定默认值)
前提:首先有一个CoreData操作例子。下载
重点:如果运行程序报错:the model used to open the store is incompatible with the one used to create the store. 请点击Xcode 顶部菜单Product -》Clean 。
1.轻量级迁移方式
下载上面例子:我们先来运行程序来插入数据。(创建完成的sqlite文件在 /Documents/Stores/CoreData.sqlite)。
插入完成后使用Navicat 或者其他sqlite数据库可视化程序查看里面的数据。
上面结束后我们来修改表结构。
基于CoreData创建CoreDate 2版本 点击Finish
现在出现了两个.xcdatamaodel文件。
添加字段完成后 设置当前数据版本为CoreData 2。
现在我们还需要将原来Entity1的表结构生成的Entity1.h、 Entity1.m、Entity1+CoreDataProperties.h、Entity1+CoreDataProperties.m替换成新的。
将原来的这四个文件直接删除,然后再创建新的就可以了
好了!准备就绪 。
我们来设置轻量级迁移参数:
好的 现在就已经完成了。下面我们来测试一下。
我们来查询一下新的表结构中是否有数据。
看样子是已经成功了。
轻量级迁移方式
默认的迁移方式
迁移管理器迁移方式
现在记录一下轻量级迁移。
轻量级数据迁移适合一下情况:
增加一个字段
必填字段改为可选字段
可选字段改为必填字段(设定默认值)
前提:首先有一个CoreData操作例子。下载
重点:如果运行程序报错:the model used to open the store is incompatible with the one used to create the store. 请点击Xcode 顶部菜单Product -》Clean 。
1.轻量级迁移方式
下载上面例子:我们先来运行程序来插入数据。(创建完成的sqlite文件在 /Documents/Stores/CoreData.sqlite)。
插入完成后使用Navicat 或者其他sqlite数据库可视化程序查看里面的数据。
上面结束后我们来修改表结构。
基于CoreData创建CoreDate 2版本 点击Finish
现在出现了两个.xcdatamaodel文件。
添加字段完成后 设置当前数据版本为CoreData 2。
现在我们还需要将原来Entity1的表结构生成的Entity1.h、 Entity1.m、Entity1+CoreDataProperties.h、Entity1+CoreDataProperties.m替换成新的。
将原来的这四个文件直接删除,然后再创建新的就可以了
好了!准备就绪 。
我们来设置轻量级迁移参数:
NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@(YES), NSInferMappingModelAutomaticallyOption:@(YES)};
好的 现在就已经完成了。下面我们来测试一下。
我们来查询一下新的表结构中是否有数据。
看样子是已经成功了。
相关文章推荐
- iOS常用宏定义
- iOS block原理研究
- 关于IOS VideoToolBox的一些汇总
- ios document
- iOS开发知识点:理解assign,copy,retain变strong
- iOS时间选择器Demo(-)
- iOS开发错误或问题集锦
- iOS开发-进阶:瀑布流基本实现
- React Native分析(index.ios.js)
- iOS Gesture 手势
- iOS target-action模式
- iOS界面开发优化--创建与布局分离
- iOS开发-基础:NSDictionary使用小结
- iOS开发中如何合理地制造BUG
- iOS硬解H.264:-VideoToolboxDemo源码分析
- 详解iOS多线程GCD的使用
- ios 缺少合规证明
- 【Xamarin挖墙脚系列:开始使用Xamari4.0系列产品开发IOS】
- iOS开发--自动布局
- iOS 内存管理(一):基本概念与原理