Core Data数据库迁移
2015-06-25 12:27
363 查看
一、 Lightweight Migration
i. 适合场景
Simple addition of a new attribute
Removal of an attribute
A non-optional attribute becoming optional
An optional attribute becoming non-optional, and defining a default value
Renaming an entity or property
ii. 如何做
1. 设置Persistent Store:
NSDictionary *persistentStoreOptions = @{ NSMigratePersistentStoresAutomaticallyOption : @YES,
NSInferMappingModelAutomaticallyOption : @YES };
persistentStore = [_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:persistentStoreOptions error:&addStoreError];
2. 给database.xcdatamodel添加版本
select database.xcdatamodel -> Editor -> Add Model Version,然后设置当前数据库对应的data model文件是哪个便好。
3.这样便完成了。so easy, so simple。而此种迁移方式,占据大部分的数据库数据迁移的应用场景。
二、Multiple Passes
这项技术,我当前还未遇到需要使用它的场景,所以没有花时间研究。至于如何处理,可以参照一篇很不错的博客, /article/5315447.html
Apple official doc: https://developer.apple.com/library/prerelease/ios/documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/vmMappingOverview.html#//apple_ref/doc/uid/TP40004399-CH5-SW1
i. 适合场景
Simple addition of a new attribute
Removal of an attribute
A non-optional attribute becoming optional
An optional attribute becoming non-optional, and defining a default value
Renaming an entity or property
ii. 如何做
1. 设置Persistent Store:
NSDictionary *persistentStoreOptions = @{ NSMigratePersistentStoresAutomaticallyOption : @YES,
NSInferMappingModelAutomaticallyOption : @YES };
persistentStore = [_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:persistentStoreOptions error:&addStoreError];
2. 给database.xcdatamodel添加版本
select database.xcdatamodel -> Editor -> Add Model Version,然后设置当前数据库对应的data model文件是哪个便好。
3.这样便完成了。so easy, so simple。而此种迁移方式,占据大部分的数据库数据迁移的应用场景。
二、Multiple Passes
这项技术,我当前还未遇到需要使用它的场景,所以没有花时间研究。至于如何处理,可以参照一篇很不错的博客, /article/5315447.html
Apple official doc: https://developer.apple.com/library/prerelease/ios/documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/vmMappingOverview.html#//apple_ref/doc/uid/TP40004399-CH5-SW1
相关文章推荐
- Oracle问题
- win7 登录本地oracle报错:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服
- 创建一个实现Disqus评论模版的MySQL模型
- Oracle study之--“ORA-00845: MEMORY_TARGET not supported on this system"错误
- Oracle 中的Pivoting Insert用法
- 在MySQL中创建带有IN和OUT参数的存储过程的方法
- hibernate 调用oracle 自带函数
- 自己配置的WAMP环境,扩展oracle函数库(oci)
- 在VB.NET应用中使用MySQL的方法
- SQL中IS NOT NULL与!=NULL的区别
- sql server中批量插入与更新两种解决方案分享
- 定时自动备份数据库
- mysql绿色版安装
- mysql mha安装以及安装出现问题处理办法
- SQLite
- Oracle 11gR2 alter操作结果日志的查看
- SQL Server '已超过了锁请求超时时段' 问题解决方法
- Nodejs连接mysql
- 论坛中不同类型的贴的排序问题(涉及数据库的:CASE... END)
- 多实例安装mysql数据库