CoreData:数据迁移如何将数据子集从一个数据存储移动到另一个数据存储

时间:2013-11-06 20:40:33

标签: core-data data-migration

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

我有一个配方管理器核心数据应用程序,它在Resources /中附带了一个预加载的sqlite数据库。这是由1.0版移动到SomeAppSupportAreaFolder /。 更高版本具有相同的情况,但可能在数据库中有其他配方。 在第一次推出新版本时(如果有任何新配方),我使用了两个核心数据堆栈。 我一直在使用不断增加的recipe.recipeID将新配方从MOCnew移动到MOCappSupport,以找到更新的配方并避免重复添加,并避免在旧的预加载配方中覆盖可能的用户编辑。

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

这对我有用。

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

非常感谢,马克

1 个答案:

答案 0 :(得分:1)

您当前的方法很好,您应该继续使用它。

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