Core Data数据库迁移

一、 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

这项技术,我当前还未遇到需要使用它的场景,所以没有花时间研究。至于如何处理,可以参照一篇很不错的博客, http://www.cnblogs.com/liyufeng2013/p/3782351.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

时间: 2024-10-19 20:47:07

Core Data数据库迁移的相关文章

iOS Core Data 数据迁移 指南

前言 Core Data是iOS上一个效率比较高的数据库框架,(但是Core Data并不是一种数据库,它底层还是利用Sqlite3来存储数据的),它可以把数据当成对象来操作,而且开发者并不需要在乎数据在磁盘上面的存储方式.它会把位于NSManagedObject Context里面的托管对象NSManagedObject类的实例或者某个NSManagedObject子类的实例,通过NSManagedObjectModel托管对象模型,把托管对象保存到持久化存储协调器NSPersistentSt

Core Data 版本迁移经验总结

大家在学习和使用Core Data过程中,第一次进行版本迁移的经历一定是记忆犹新,至少我是这样的,XD.弄的不好,就会搞出一些由于迁移过程中数据模型出错导致的Crash.这里总结了一下Core Data版本迁移过程中的经验,希望对大家有用. 写在前面 关于Core Data版本迁移,这两篇文章都进行了分析,大家可以参考. Core Data Model Versioning and Data Migration Programming Guide 自定义 Core Data 迁移 迁移准备 1)

添加Entity Framework Core,数据库迁移

1.建立Entity 建立IEntity的接口 建立实现IEntity接口的抽象类Entity 建立类继承抽象类Entity 2. 数据库放到infrastructure的项目中 3.注册和配置这个dbcontext 1.安装entityFramworkcore.sqlite的包 2.在开发环境下注册服务 以后使用的话就直接在那个类里面注入就行 数据库迁移 1.initial是自己起的名字,会生成一个文件夹,里面有迁移类,里面有两个方法,一个up,一个down,更新就用Up,回滚执行down 删

ASP.NET CORE系列【六】Entity Framework Core 之数据库迁移

前言 最近打算用.NET Core写一份简单的后台系统,来练练手 然后又用到了Entity Framework Core 发现园子里有些文章讲得不是那么细节,对于新手小白来说,可能会有点懵. 特意整理了几个细节. 正文 数据迁移 首先EF CORE跟以前的EF6是有不同点的, 微软官网列出的不同点:https://docs.microsoft.com/zh-cn/ef/efcore-and-ef6/features 安装 EF 核心 NuGet 包 若要使用 EF 核心,请为你想要使用的数据库提

Core Data 版本数据迁移

Core Data版本迁移基础 通常,在使用Core Data的iOS App上,不同版本上的数据模型变更引发的数据迁移都是由Core Data来负责完成的.这种数据迁移模式称为Lightweight Migration(可能对于开发人员来说是lightweight),开发人员只要在添加Persistent Store时设置好对应选项,其它的就交付给Core Data来做了:从命名上可以看出这两个选项分别代表:自动迁移Persistent Store,以及自动创建Mapping Model.自动

Core Data的数据迁移

原文地址:http://blog.csdn.net/jasonblog/article/details/17842535 Core Data版本迁移基础 通常,在使用Core Data的iOS App上,不同版本上的数据模型变更引发的数据迁移都是由Core Data来负责完成的. 这种数据迁移模式称为Lightweight Migration(可能对于开发人员来说是lightweight),开发人员只要在添加Persistent Store时设置好对应选项,其它的就交付给Core Data来做了

iOS Swift学习笔记 Core Data (一)Hello Core Data

正在学习swift的Core Data,做个笔记,顺便分享源码 这个实例是一个很简单的Table,通过右上角的Add按钮可以添加新的用户名.数据存储在CoreData中,这样,才不会丢失. 通过这个例子可以学会: 使用Xcode的model编辑器创建数据对象的model data. 添加新的记录到CoreData中 从CoreData中获取记录集合 显示记录到table view中 这个例子十分简单,还有很多可以改进的地方,比如,每次要操作managed class都需要访问AppDelegat

OC开发_Storyboard——Core Data

一 .NSManagedObjectContext 1.我们要想操作Core Data,首先需要一个NSManagedObjectContext2.那我们如何获得Context呢:创建一个UIManagedDocument 二.UIManagedDocument 1.UIManagedDocument是一系列用于管理存储的机制:  [将Core Data数据库放入某存储空间,相当于是管理core data 数据库的存储,所以我们只需要打开和存储]2.那我们如何得到UIManagedDocumen

iOS教程:如何使用Core Data – 预加载和引入数据

这是接着上一次<iOS教程:Core Data数据持久性存储基础教程>的后续教程,程序也会使用上一次制作完成的. 再上一个教程中,我们只做了一个数据模型,之后我们使用这个数据模型中的数据创建了一个表视图,我们还学习了如何测试数据模型的可行性,今天,我们来看看如何在应用启动的时候,将已经存在的数据载入或者引用到我们的程序中去. 请注意我们在上一次的教程中学习到的是直接通过操作SQLite数据库来加载数据,你当然可以一直使用这种方法,但是这个教程教授的方法更加优雅,更加合理. 在下一部分的教程中,