CoreData:用新版本替换数据模型?
Posted
技术标签:
【中文标题】CoreData:用新版本替换数据模型?【英文标题】:CoreData: Replacing Data Model with New Version? 【发布时间】:2011-03-07 22:44:45 【问题描述】:我的应用最初是使用简单的 CoreData 模型发布的。原始源代码已丢失,并已使用全新的 CoreData 模型重新构建。
在您考虑安装要升级的旧应用程序之前,一切似乎都很好。我不完全确定,但似乎在安装新版本而不是当前在 App Store 上发布的旧版本时存在问题。我没有收到任何具体的错误消息,但我想不出应用程序会快速崩溃的任何其他原因。
有没有一种比较简单的方法可以将旧版本的数据模型替换成新的?
【问题讨论】:
我应该问这个问题:您是否有权访问用于原始应用程序的配置文件?您需要使用相同的配置文件来更新应用商店中的应用。 【参考方案1】:查看Core Data Model Versioning and Data Migration Programming Guide。
您需要创建架构的新“版本”,然后迁移到新架构。
【讨论】:
没有原始源代码怎么办? 在不知道设备上 coredata 存储的现有数据模型的情况下,我认为您将无法访问该数据来迁移它。您也许可以使用自省对数据字段进行逆向工程,但这需要一些工作。 如果你没有原始的数据模型源文件,你几乎是死在水里。【参考方案2】:自己进行迁移。在初始运行期间读取 previos 数据库并将所有内容复制到新数据库。如果您越狱了您的设备,您可以使用文件资源管理器访问文件系统,并可以从文档文件夹中复制 sqlite 数据库文件。您可以通过查看 Sqlite 表找到 coredata 模型(当然需要一些试验和错误)。
【讨论】:
以上是关于CoreData:用新版本替换数据模型?的主要内容,如果未能解决你的问题,请参考以下文章