我刚刚打开了一位客户的核心数据数据库,该客户在停电时正在使用该应用程序,因此他的 Mac 在保存核心数据模型时关闭了。
调试器显示:错误:持久存储迁移失败,缺少映射模型。
是否是因为模型更新错误导致某些部件丢失/无效?
我可以做些什么来恢复这个数据库吗?
谢谢
最佳答案
显然,该模型(.xcdatamodel 文件中描述的模型)不再与商店中的实际数据同步。当您更改模型时会发生这种情况:添加实体、关系、更改属性等。
要将数据从存储传输到新模型,您可以使用核心数据映射模型(.xcmappingmodel 文件)。该文件描述了对数据模型的各种修改,并允许 Core Data 将数据从模型的先前版本迁移到新版本。如果缺少此文件,则数据无法迁移/传输到模型的新版本。显然,从收到的消息来看,映射模型并不存在。
造成这种情况的原因可能有很多,也许是因为构建错误。仔细检查应用程序是否有权访问映射模型并重试。如果数据损坏,您可以尝试使用具有停电前时间戳的数据备份版本,看看迁移是否可以从那里进行。
关于objective-c - 保存核心数据模型因断电中断 : Persistent store migration failed, 缺少映射模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10136995/