是否成功迁移 Core Data,但现有存储已被删除

Posted

技术标签:

【中文标题】是否成功迁移 Core Data,但现有存储已被删除【英文标题】:Did a successful Core Data migration but the existing store was deleted 【发布时间】:2013-08-15 21:49:55 【问题描述】:

我有一个使用 MagicalRecord 管理的 CoreData 存储。我进行了成功的迁移,但丢失了新创建的商店中的数据。这就是我所拥有的:

salonbookV1.0 是初始存储的原始 xcdatamodel。我只向现有实体添加了新属性,映射模型如下所示:(部分图像)。

让我详细说明我做了什么......

创建了包含两个 xcdatamodel 的 xcdatamodeld 文件夹 将 salonbookV1.0 标记为当前版本并运行应用程序创建一些条目 停止应用,并将 salonbookV1.5 标记为当前版本并运行应用 之前输入的数据不见了! (显然没有发生迁移)?

迁移完成;我知道,因为我可以使用新属性。但是,现有的 CD 存储已被删除。我已经阅读了关于 MR 的所有内容,并且只有一种方法可以处理迁移; MR 完成剩下的工作,无需我编写任何代码。

所以问题仍然存在:为什么要删除现有商店?

【问题讨论】:

您对代码做了哪些更改?除非您告诉核心数据进行迁移,否则不会发生迁移。 我的理解是 MagicalRecord 会自动为我做所有事情...不是真的吗? 在某些时候,您将不得不编写一些代码。查看magicrecord 类头文件,看看有哪些选项可以帮助您进行迁移 @casademora:你曾经使用 MagicalRecord 进行过迁移吗? OK...那么显示我需要添加的代码的文档在哪里?我花了两天时间研究这个,一无所获!非常感谢您帮助我找到对我有帮助的文档。 【参考方案1】:

我不了解 MR,但在“普通”Core Data 中,您必须将 NSMigratePersistentStoresAutomaticallyOption 设置为持久存储,否则它不会将您现有的数据迁移到新的存储版本。

【讨论】:

我确实阅读了您的问题。迁移新模型和迁移数据是有区别的。我认为我提到的选项是指数据,而不是模型,在进一步研究后似乎并非如此。 -- 顺便说一句,你不会得到任何有用的答案作为触发快乐的投票者。 你的评论对我来说没有多大意义,因为我使用的是 MR,而且都是关于数据的;我为否决票道歉。我对此感到非常沮丧! :-

以上是关于是否成功迁移 Core Data,但现有存储已被删除的主要内容,如果未能解决你的问题,请参考以下文章

Core Data迁移后如何保持数据有序?

Core Data (SQLite) 手动迁移是事务性的吗?

在 Core Data 迁移期间添加关系 - 自我参考

是否可以在一个应用程序中使用多个 Core Data 模型?

执行 Core Data 迁移时,如何从不同实体的源存储中继承旧值?

将 EF Core 迁移添加到现有数据库,同时仍允许从头开始创建数据库