使用Magical Record中的自定义策略进行迁移

时间:2013-04-27 14:40:45

标签: ios core-data core-data-migration magicalrecord

我正在更新一个使用Core Data进行数据管理的应用程序。在当前版本中,我实现了 Magic Record 并更新了数据模型。数据模型将无法使用自动迁移,因此我需要实现手动迁移。我很困惑如何用Magic Record做到这一点。

我查看了Magic Record的源代码,从它的外观来看,在尝试创建持久存储协调器时,没有支持迁移管理器的实现。

DEBUG标志设置为true时,应用程序将删除不兼容的版本并使用当前版本创建新数据库。但是,这不会迁移所有数据。从文档来看,看起来这个功能已经实现,因此我们不必通过删除应用程序并重新安装来不断删除旧版本,这样才有意义。

Magic Record支持迁移管理员吗?我曾想过将它添加到源代码中,但我不想修改库。

2 个答案:

答案 0 :(得分:2)

asked MagicalRecord的作者并得到了以下答案:

  

我刚把它添加到实验分支中。看看吧   MagicalRecord类方法

     

+setupCoreDataStackWIthManuallyMigratingStoreNamed:

     

让我知道它是如何为您服务的。另外在实验分支中还有其他一些   需要迁移(pun!)的功能回到主分支,所以让   我知道你是否还能找到其他任何东西。

答案 1 :(得分:1)

您无需修改​​MagicalRecord。只需在设置MagicalRecord堆栈之前触发迁移管理器。

  • 在应用程序启动时检测是否需要迁移。
  • 如果需要迁移,请运行迁移管理器。一个很好的例子是SO 5995231
  • 完成后或不需要迁移时,启动MagicalRecord堆栈。