迁移复杂的核心数据模型

时间:2011-10-04 23:56:08

标签: cocoa core-data

我对核心数据模型迁移有几个问题。

我有一个非常复杂的数据模型,有几个实体继承案例。我打算在新版本中对数据模型进行一些更改并尝试设置迁移,但是当它迁移到商店时,我丢失了一些属于从另一个实体继承的实体的数据。

在我的情况下,我有一些实体都从“资源”实体继承。此资源实体具有属性“name”。当我尝试迁移数据存储时,从“资源”实体继承的所有实体都会丢失其名称。

他们以任何方式让模型迁移为具有继承的数据模型工作吗?我已经发布了测试版,我需要对模型进行一些更新,但我显然不希望用户丢失所有数据。

由于

1 个答案:

答案 0 :(得分:0)

尝试使用Column properties > Versioning > Renaming identier在您的新模型上“播放”,输入上一个字段名称,我猜这是相同的。我怀疑它是否适用于继承,但这值得尝试... (没有那么记录的功能,允许跨重命名保存数据,保存了几次)

如果这不起作用,我担心你必须进行“手动迁移”...使用模型映射和其他东西......这有点复杂。请参阅有关此主题的Apple文档...然后我建议您回滚更改并忘记继承,更快更好更容易,即使它不那么“干净”。或者只是假设你的用户会丢失一些数据,在测试阶段这不是那么重要...... (或者你可以在迁移模型然后重新填充之前在内存/ plist文件中收集旧数据) < / p> 祝你好运! CoreData自动模型迁移很棒,但要注意它只能通过简单的修改才能工作......


哦,只是另一个技巧,将-com.apple.CoreData.SQLDebug 1添加到您的应用启动参数中,您将获得CoreData生成的所有sql请求...这可能有助于您了解迁移过程。 (和其他一些事情......)