【问题标题】:How to migrate a core data data model when adding an abstract parent entity?添加抽象父实体时如何迁移核心数据数据模型?
【发布时间】:2013-05-06 07:47:09
【问题描述】:

我创建了一个新的核心数据模型版本。我所做的更改是添加了一个名为“FTASyncParent”的新实体,我将其设置为抽象实体。然后我将所有其他实体的父实体设置为抽象的“FTASyncParent”实体。所以现在在我的新模型中,我的所有实体都将“FTASyncParent”实体设置为父实体。

我从 Apple 的核心数据文档中了解到,轻量级迁移适用于实体层次结构的更改。但是,当我尝试执行轻量级迁移时,出现以下错误。

Error: Error Domain=NSCocoaErrorDomain Code=134110 "The operation couldn’t be completed. (Cocoa error 134110.)" UserInfo=0x1d9ccba0 {destinationRootEntity=FTASyncParent, reason=Cannot merge multiple root entity source tables into one destination entity root table, sourceRootEntities=(
    Day,
    MealItemFood
), NSUnderlyingException=Cannot merge multiple root entity source tables into one destination entity root table}

Day 和 MealItemFood 是我的数据模型中的一些实体,它们现在将“FTASyncParent”实体作为父实体。

如何解决此错误?如果我不能为此使用轻量级迁移,自定义映射模型映射应如何反映我的数据模型中的更改?

【问题讨论】:

标签: ios objective-c cocoa core-data core-data-migration


【解决方案1】:

尝试在模拟器的主屏幕中删除应用程序,然后重新构建/清理。

【讨论】:

  • 我在开发设备上构建,通过从应用商店下载我的应用程序开始全新安装,然后添加一些测试数据(通过使用应用程序),最后我尝试做通过安装我的应用程序的新版本进行迁移。
  • db 版本控制和迁移的目标不是卸载应用程序,因为如果应用程序已经投入生产,您不会希望删除用户的所有数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多