核心数据迁移:将字段提取到抽象实体子项

Posted

技术标签:

【中文标题】核心数据迁移:将字段提取到抽象实体子项【英文标题】:Core Data Migration: Extracting fields to an abstract entity child 【发布时间】:2010-06-22 18:22:44 【问题描述】:

我有一个迁移,我将字段从一个实体移动到另一个实体,该实体是抽象实体的子实体。我的模型有一个实体Thing,它是一个抽象实体AbstractWidget 的1->M,它是NewStuff 的父级。像这样的:

+-------+      +----------------+    +----------+
| Thing |<--->>| AbstractWidget |<---| NewStuff |
+-------+      +----------------+    +----------+

我正在将多个属性从Thing 移动到NewStuff,并且我一直按照a blog post I found that has instructions for making a similar change 上的说明进行操作。

我创建了一个包含结构更改的新版本,并创建了一个映射模型,其中包含一个名为 ThingToNewThing 的映射,它根据说明映射字段,但不映射关系。我没有更改关系,因为 AbstractWidgets 已经设置为可以正常工作。

当我运行我的应用程序时,我会收到一整串内容发送到控制台,开头是这样的:

2010-06-22 14:14:07.463 MyAppName[31418:207] Unresolved error Error Domain=NSCocoaErrorDomain Code=134140 UserInfo=0x55249d0 "Operation could not be completed. (Cocoa error 134140.)"

...后跟似乎是现有数据属性的列表。

我在任何地方都找不到任何关于 Cocoa 错误 134140 的信息,而且我不确定从这里去哪里。

任何指导将不胜感激。

【问题讨论】:

【参考方案1】:

首先,首先将[error userInfo] 也吐出到控制台,这将告诉您确切的问题是什么。

其次,将输出复制并粘贴到您的问题中,以便我查看:)

更新

根据您发送给我的日志文件,这是根本问题:

无法找到或自动推断迁移的映射模型

这意味着它无法找到映射模型。所以要么它不能匹配源模型,要么不能匹配目标模型,或者你的映射模型不包含在包中。

【讨论】:

此外,该日志包含大量特定于我的应用程序的信息,我不想让公众看到这些信息。但是,如果您同意,我很乐意将其通过电子邮件发送到您的支持电子邮件地址。谢谢! :-) 我在我的项目中遇到了这个问题。我在核心数据中进行了手动迁移,以对实体进行特定更新。有趣的想法是应用程序从版本 1 到 4 的迁移适用于 ios7,在 iOS6 中我收到错误 134140。 iOS 7 可能会推断出 iOS 6 无法推断出的模型。我建议确保您的繁重迁移映射模型位于正确的位置。我还会打开 SQLite 调试并观察以确保 Core Data 正在寻找映射模型。

以上是关于核心数据迁移:将字段提取到抽象实体子项的主要内容,如果未能解决你的问题,请参考以下文章

核心数据迁移删除实体数据

核心数据迁移——如何将两个实体合二为一

核心数据迁移:将关系从一个实体更改为其父实体后的异常

在实体框架核心中合并迁移

实体框架核心更新-数据库特定迁移

核心数据模型迁移