iPhone |从头开始构建的新版本的核心数据迁移

时间:2012-11-09 12:23:43

标签: iphone xcode core-data

我正在开发App更新,此版本完全是从头开始构建的,并且具有全新的coreData模型架构。我需要从旧模型编写coreData迁移。我一直在寻找资源来编写coreData迁移,但所有这些都需要旧的模型文件。由于这个版本是全新的,我没有旧的模型架构。

我有什么方法可以编写迁移,以便在用户更新应用时转储旧模型?

提前致谢

3 个答案:

答案 0 :(得分:3)

如果您有旧的App,那么您可以从App bundle中包含的已编译模型文件重新创建模型:

  • 如有必要,请将应用程序同步到iTunes。
  • 按住Ctrl键并单击iTunes中的应用程序,然后使用“在Finder中显示”找到“YourApp.ipa”文件。
  • 将“YourApp.ipa”复制到临时目录,并在命令行中使用“解压缩YourApp.ipa”来解压缩存档。
  • 在解压缩的“Payload / YourApp.app”文件夹中,应该有一个包含文件“XXX.mom”的“XXX.momd”文件夹( XXX 是模型的名称)。这是已编译的模型文件。
  • 在您的Xcode项目(或临时项目)中,创建一个新的“数据模型”文件“XXX.xcdatamodeld”。
  • 选择此文件,然后从菜单中选择“编辑器 - >导入...”。
  • 在导入对话框中,从上面选择“XXX.mom”文件。

答案 1 :(得分:0)

如果没有旧的模型架构,则无法进行迁移。嗯,那是合乎逻辑的。

您唯一可感知的选项是反向工程旧模型架构并从那里获取它。

然后通过添加/删除/更改实体,属性和关系来构建新架构。

如果您可以从现有商店中提取数据,只需编写自定义导出功能并将其插入到全新的核心数据存储中。

答案 2 :(得分:0)

您可以通过使用纯sqlite SELECT读取旧数据库并通过coredata模型将数据插入新数据库来进行迁移。我在我的软件中用它来从并发软件导入数据:)