1

CoreData:Data-Migration 如何将数据子集从一个数据存储移动到另一个数据存储?

我有一个配方管理器核心数据应用程序,它在 Resources/ 中附带一个预加载的 sqlite 数据库。1.0 版将其移至 SomeAppSupportAreaFolder/。以后的版本也有同样的情况,但可能在数据库中有额外的配方。在新版本首次发布时(如果有任何新配方),我使用了两个核心数据堆栈。我一直在将新配方仅从 MOCnew 移动到 MOCappSupport,使用不断增加的 recipe.recipeID 来定位新配方并避免添加重复项,并避免覆盖旧的预加载配方中可能的用户编辑。

我使用:insertNewObjectForEntityForName:。然后将数据复制到克隆对象。

这对我有用。

我的问题是,是否可以将所选配方数据的这种移动以更直接的方式从新数据存储移动到旧数据存储。可以直接使用自定义迁移/NSMigrationPolicy 来完成吗?我目前的方法有问题吗?

非常感谢,马克

4

1 回答 1

1

您当前的方法是一个很好的方法,您可能应该继续使用它。

核心数据迁移完全是另一回事。它指的是迁移到数据模型的新版本,而不是迁移到不同的持久存储文件。如果您在将来的某个版本中更改数据模型,则需要考虑迁移。如果您的更改很小,通常迁移可以是自动的。但这与将数据从一个存储文件复制到另一个存储文件是完全不同的主题。

于 2013-11-06T22:04:06.877 回答