不使用旧模型迁移数据
Posted
技术标签:
【中文标题】不使用旧模型迁移数据【英文标题】:Migrating data without the old model 【发布时间】:2012-01-12 20:01:03 【问题描述】:我不小心丢失了旧版本的数据模型,现在自动轻量级迁移不起作用(显然)。如果出现此问题,我设法让 Core Data 删除旧存储,但我显然不想丢失旧数据。那么如何手动迁移呢?在启动时,我只是收到一个错误,即 store coordinator 没有持久存储(错误 134140)。
我已经尝试制作一个与旧模型匹配的新模型版本(它实际上在错误消息中说明了旧的、使用过的模型),但不知何故这也不起作用。它以前可以工作,但显然我只是搞砸了保存当前应用商店版本的模型版本。
编辑:我只是想到了可能的另一种方式(不知道为什么我以前没有想到这个):因为核心数据是由 SQLite 数据库支持的,所以我不能得到我需要的信息(即 4数据库中的行,然后我可以自己重新填充其余部分)直接从中?如果是这样,我可以用什么来做到这一点?
【问题讨论】:
无法回答您当前的问题。您需要提供更多详细信息。 您还需要哪些额外信息?我有一个没有旧模型的数据库,更新应用程序时无法将数据迁移到新模型。 我只是想到了可能的另一种方式(不知道为什么我以前没有想到这个):因为核心数据是由 SQLite 数据库支持的,所以我不能得到我需要的信息(那个是,来自数据库的 4 行,然后我可以自己重新填充其余部分)直接从中?如果是这样,我可以用什么来做到这一点? 【参考方案1】:我不确定它是如何完成的,但模型是版本化的,可能使用的是 GUID 或模型文件的加密哈希。因此,您需要完全与创建模型的文件相同。
或者换句话说,你需要使用版本控制。
我想理论上应该可以精确地重新创建您的模型,但我不知道有什么方法。
【讨论】:
该死的,我害怕那个。我确实有 git,但似乎没有提交该更新......我搞砸了很多。 我的做法是通过 SQL 手动读取最重要的数据,然后使用该数据重新创建数据库。以上是关于不使用旧模型迁移数据的主要内容,如果未能解决你的问题,请参考以下文章