gpt4 book ai didi

cocoa - 迁移复杂的核心数据模型

转载 作者:行者123 更新时间:2023-12-03 16:22:31 25 4
gpt4 key购买 nike

我有几个关于核心数据模型迁移的问题。

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

就我而言,我有一些实体,它们都继承自“资源”实体。该资源实体具有属性“名称”。当我尝试迁移数据存储时,从“资源”实体继承的所有实体都会丢失其名称。

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

谢谢

最佳答案

尝试使用列属性>版本控制>重命名标识符在新模型上“玩”,输入以前的字段名称,我猜它是相同的。我怀疑这是否适用于继承,但这值得一试...(没有如此记录的功能,允许跨重命名保留数据,救了我好几次)

如果这不起作用,恐怕您必须使用模型映射和其他东西进行“手动迁移”...恕我直言,这有点复杂。请参阅有关此主题的 Apple 文档...然后,我建议只回滚您的更改并忘记继承,更快更容易,即使它不太“干净”。或者只是假设您的用户会丢失一些数据,在测试阶段这并不那么重要...(或者您可以在迁移模型之前收集内存/plist 文件中的旧数据,然后重新填充)

祝你好运! CoreData 自动模型迁移很棒,但请注意,它只能通过简单的修改才能工作......

<小时/>

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

关于cocoa - 迁移复杂的核心数据模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com