在不使用旧模型的情况下迁移数据



我意外地丢失了旧版本的数据模型,现在自动轻量级迁移(显然)不起作用了。如果出现这个问题,我设法让Core Data删除了旧的存储,但我显然不想丢失旧的数据。那么,我如何手动迁移呢?在启动时,我刚刚得到一个错误,即存储协调器没有持久存储(错误134140)。

我已经尝试过制作一个与旧模型匹配的新模型版本(它实际上在错误消息中说明了旧的、使用过的模型),但不知何故,这也不起作用。它以前也能用,但显然我只是把保存当前应用商店版本的模型版本搞砸了。

编辑:我只是想了另一种可能的方法(不知道为什么我以前没有想过):因为核心数据是由SQLite数据库支持的,我不能直接从中获得我需要的信息(也就是说,从数据库中有4行,然后我可以自己重新填充它的其余部分)吗?如果是这样,我可以用什么来做这件事?

我不确定它是如何完成的,但模型是有版本的,可能使用了模型文件的GUID或加密哈希。因此,您需要与创建模型时使用的文件完全相同。

或者换句话说,您需要使用版本控制。

我想理论上应该可以准确地重新创建你的模型,但我不知道怎么做。

最新更新