核心数据模型迁移
Posted
技术标签:
【中文标题】核心数据模型迁移【英文标题】:Core data model migration 【发布时间】:2014-02-03 08:34:24 【问题描述】:我想迁移两个模型的核心数据。根据苹果文档,有两种方法可以迁移模型,如轻量级迁移和映射模型。我的困惑是在哪种情况下我需要使用核心数据迁移的映射模型方式。
【问题讨论】:
【参考方案1】:当您添加/修改/删除属性或实体时执行轻量级迁移 - 通常是简单的操作。
当您必须将一种模式转换为另一种模式时,需要使用映射选项。
假设您和实体A
,但您需要将其一分为二:B
和C
。
然后你必须告诉 CoreData 如何在方案之间映射实体和属性。
这个过程比轻量级迁移要复杂一点。它需要创建映射模型文件,如果需要,定义NSEntityMigrationPolicy
子类等等,这取决于您的需要。
【讨论】:
感谢 Oczko 的快速回复...如果我正确理解了将实体 A 拆分为实体 B 和实体 C 等两个现有实体时需要映射模型。但我有一个疑问,我可以通过以下方式处理这种情况比如在创建新模型时从实体 A 中删除属性并手动添加到 B 和 C 中。通过这种方式 LightWeight 迁移是否足够? 如果应用程序正在开发中,并且您不介意丢失数据,那很好。否则就不安全了,因为 CoreData 不知道如何填充新添加的属性。以上是关于核心数据模型迁移的主要内容,如果未能解决你的问题,请参考以下文章