3

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

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

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

那么 Magic Record 是否支持迁移管理器?我曾考虑将其添加到源代码中,但我不想修改库。

4

2 回答 2

2

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

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

+setupCoreDataStackWIthManuallyMigratingStoreNamed:

让我知道它是如何为你工作的。在实验分支中还有一些其他功能需要迁移(双关语!)回到主分支,所以如果你还在那里找到其他任何东西,请告诉我。

于 2013-05-08T08:45:39.507 回答
1

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

  • 在应用程序启动时检测您是否需要迁移。
  • 如果需要迁移,则运行迁移管理器。一个很好的例子是SO 5995231
  • 完成或不需要迁移时,启动 MagicalRecord 堆栈。
于 2013-05-07T12:11:01.587 回答