美文网首页
Core Data的数据迁移

Core Data的数据迁移

作者: cocoaCoffee | 来源:发表于2018-10-17 00:01 被阅读0次

什么时候要数据迁移

app中使用了CoreData,并且在下一个版本中有实体变动,比如实体新增字段、修改字段等改动,那么app在覆盖安装时就要进行数据库迁移

用上篇文章的数据文件作例子

image.png
  • 假设我们要添加一张表,我们就要做一次数据迁移,不是直接在xcdatamodeld文件添加一个实体就行了,因为你底层的SQLite数据库已经在上次运行的时候就创建了一个数据库,已经是有Student和Course表了,你在xcdatamodeld文件添加实体并不会让底层数据库多出一张表,xcdatamodeld文件只是一个底层数据库的映射,因此数据迁移并不是在原来的xcdatamodeld文件上改动

就以截图为例子,假如我们要再创建一个Score实体,我们要怎么做


  • 首先选中文件

image.png
名字你喜欢,这里就是Model 2
image.png
  • 选择刚创建的版本,在这个位置成现在的文件名字,即Model 2

image.png
  • 在新的数据文件添加Score实体

image.png
  • 注意如果是添加实体就重新生成新添加的实体的模型类,不选另两张表,像这样

image.png
image.png
  • 如果是新添加了某个实体的属性,比如Student实体添加了个sex的属性,那就把Student实体模型类删了,再生成一次

这四个删了,怎么删除实体模型类就不用教了
  • 最后一步就是要在创建数据库的代码上作小小的修改

这是原来的代码 修改后
NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@YES,NSInferMappingModelAutomaticallyOption:@YES};

这里说一下新增加的2个参数的意义:NSMigratePersistentStoresAutomaticallyOption = YES,那么Core Data会试着把之前低版本的出现不兼容的持久化存储区迁移到新的模型中,这里的例子里,Core Data就能识别出是新表,就会新建出新表的存储区来。NSInferMappingModelAutomaticallyOption = YES,这个参数的意义是Core Data会根据自己认为最合理的方式去尝试MappingModel,从源模型实体的某个属性,映射到目标模型实体的某个属性

  • 结束

相关文章

  • 数据库(Core Data)迁移

    Core Data版本迁移基础 通常,在使用Core Data的iOS App上,不同版本上的数据模型变更引发的数...

  • Core Data的数据迁移

    什么时候要数据迁移 app中使用了CoreData,并且在下一个版本中有实体变动,比如实体新增字段、修改字段等改动...

  • 002 Core Data系列

    简单的demo演示Core Data是如何工作的 Core Data存储数据 Core Data读取数据

  • Core Data (The Migration Process

    迁移过程 在迁移期间,Core Data创建两个堆栈,一个用于源储存,一个用于目标储存。Core Data然后从源...

  • Core Data (Lightweight Migration

    轻量级迁移 如果只是对模型进行简单的更改(例如像实体添加新属性),则Core Data可以自动执行数据迁移,称为轻...

  • Core Data 数据迁移 版本升级

    在Core Data中如果想要对xcdatamodeld 文件中的数据字段增删的话,是不可以直接添加的,那样子xc...

  • iOS Core Data 数据迁移 指南

    前言 Core Data是iOS上一个效率比较高的数据库框架,(但是Core Data并不是一种数据库,它底层还是...

  • iOS数据存储之Core Data(一)

    iOS数据存储之Core Data(一) Core Data 基础 Core Data 是一个API集合,被设计用...

  • 【iOS】Core Data迁移

    core data是苹果自带的一个轻量本地数据库,速度较快使用也比较方便,但是数据迁移需要多多注意 1、选中你的b...

  • Core Data数据迁移和版本更新

    介绍 Core Data Model Versioning and Data Migration Core Dat...

网友评论

      本文标题:Core Data的数据迁移

      本文链接:https://www.haomeiwen.com/subject/blgkzftx.html