我有一个应用程序,有许多核心数据迁移,有几个开发人员在项目上工作,有一次看起来没有正确迁移核心数据模型。最终的结果是,从应用程序的特定版本升级到当前版本的应用程序的用户无法将其上下文保存到商店(此应用程序进入后台时发生此保存)。以前的核心数据迁移失败
错误记录如下:
This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.
幸运的是,用户可能不会注意到从这个碰撞和错误太多,作为应用程序的退出过程中出现并应用程序被设计成简单地检索任何来自网络的数据在本地丢失,因此失败的保存并不像关闭任何用户创建的数据那样严重。当然,这并不理想,因为必须重新下载刚刚未在应用程序退出时保存到商店的数据。
我的问题最终是如何着手解决这个问题呢?
我的想法是发布一个小的更新,完全重置核心数据持久性模型。擦掉所有旧数据存储,并重新开始(记住数据全部来自服务器)。用户不会丢失任何数据,这将解决未来的事情。有更好的主意吗?
另外,如果这是我决定做的事情,我会如何正确地做到这一点?我只是看看我的包,删除任何.momd文件,然后用不同的名称重新创建一个新的文件?或者是删除不必要的,只是给新的名字会给予期望的结果?
为什么不只是修复错误的迁移? – Wain
这是一个有效的问题。也许这可能需要一个单独的问题。但是,我很难确定错误迁移的来源。你能给我一些关于检测的建议吗?并且修复这种不良迁移比我提出的解决方案更容易吗?我将如何去解决一个坏的迁移? – hatunike
您正在使用版本控制?所以你可以从你的第一个版本开始逐步检查每个版本并运行它直到你发现问题。 – Wain