zoukankan      html  css  js  c++  java
  • Core Data系列六——Custom Migration

    我的这篇文章里提到了,关于Core Data的数据迁移过程有两个维度可以自定制:

    1. 在迁移的过程中可以执行自定制的代码。通常是通过提供自己的migration policy类来实现。
    2. 可以自定制版本检测和迁移过程。指的是自己建立migration manager,判断是否需要迁移,以及控制迁移过程。

    custom迁移过程则是从这两个维度进行了自定制。相对于定义从所有的历史版本到当前版本的mapping model, 更为合理的方式是渐进式迁移,即只定义从上一版本到当前版本的mapping model,渐进式地完成迁移过程。 这种方式的总体思路是:

    • 创建每个版本迁移到下一个版本的mapping model, 创建可能的NSEntityMigrationPolicy,
    • 创建并操作NSMigrationManager完成每一个版本的迁移

    大致的流程图为:

    迁移过程中有几个关键角色:

    1. NSMappingModel:提供了接口用于从指定的bundle中查找从source model到destination model迁移所需的.cdm文件,并根据文件创建mapping model
    2. MSMappingManager: 根据指定的source model、target model、mapping model, 对数据库文件执行迁移动作。具体的迁移过程是NSMigrationManager根据NSEntityMapping, 针对source instance创建对应的destination instance(s)
    3. NSEntityMapping: how to map an entity from a source to a destination managed object model;可以为每一个NSEntityMapping指定它所使用的NSEntityMigrationPolicy。在xcode中可以创建和编辑
    4. NSEntityMigrationPolicy: 其实例为一个具体实体映射的迁移策略。简单的说,这个类让我们不仅仅能修改实体的属性和关系,而且还能任意添加一些自定义的操作来完成每个实体的迁移

    参考文档:
    http://objccn.io/issue-4-7/

  • 相关阅读:
    Template(模板)模式
    Android活动(Activity)创建及生命周期
    Android--SharedPreferences数据存储方案
    Adapter适配器模式--图解设计模式
    准时制生产(Just in Time,JIT)
    术语
    制造资源计划(Manufacturing Resource Planning,Mrp II)
    Angualr6表单提交验证并跳转
    Android PDA扫描枪广播接搜条码并使用
    Java统计代码行数
  • 原文地址:https://www.cnblogs.com/mindyme/p/4966871.html
Copyright © 2011-2022 走看看