逆向工程核心数据数据库导致“找不到源存储模型”错误

Posted

技术标签:

【中文标题】逆向工程核心数据数据库导致“找不到源存储模型”错误【英文标题】:Reverse-engineering Core Data db results in "Can't find model for source store" error 【发布时间】:2011-12-01 12:20:25 【问题描述】:

我的任务是重新设计一个使用 Core Data 存储一些值的 iPhone 应用程序。不幸的是,我无法访问原始源代码,但我可以访问旧数据库文件,这些文件直接从安装旧版本应用程序的设备复制而来。

我必须创建具有一些新功能的应用程序的新版本,并且我正在尝试从 Sqlite Db 导入数据并将其迁移到新版本。

我已经无法从旧数据库中读取数据。虽然我可以打开 Sqlite 文件,并且能够在我自己的数据模型中准确再现数据结构,但每次我尝试读取数据时,它都会失败并显示

Can't find model for source store

错误。

忽略旧数据不是一种选择,因为那里存储了重要数据。

我搜索了解决方案并尝试了所有与迁移数据相关的推荐解决方案,但都失败了。也许我不能使用另一个应用程序创建的 Sqlite?或者,即使我完全使用了某些字段名称和数据类型,我在重新设计数据模型的结构时也忽略了一些东西?有没有其他办法解决这个问题?

【问题讨论】:

【参考方案1】:

我无法解决问题,但我找到了解决方法。通过直接使用 Sqlite,我能够查询遗留数据并将其导入到我新创建的数据模型中。使用 Sqlite 的一个很好的起点是:

http://www.techotopia.com/index.php/ios_4_iPhone_Database_Implementation_using_SQLite

【讨论】:

那么也许你应该接受这个答案作为正确答案。

以上是关于逆向工程核心数据数据库导致“找不到源存储模型”错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Core Data 轻量级迁移和 UIManagedDocument 的“找不到源存储模型”

核心数据“数据库出现损坏”——导致此错误的原因是啥?

尝试将纬度和经度保存到核心数据会导致访问错误

核心数据关系在删除后导致保存错误

核心数据 VS 验证错误对象,导致崩溃

核心数据:在设备上构建会导致 NSPersistentStoreCoordinator 错误