2013-04-27 101 views
3

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

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

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

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

回答

2

asked MagicalRecord的作者,得到了如下回答:

我只是说这experimental分支。看一看在 MagicalRecord类方法

+setupCoreDataStackWIthManuallyMigratingStoreNamed:

让我知道它是如何工作的你。另外在实验分支中还有一些需要将(双关语)迁移回主分支的其他功能,所以如果您还发现其他任何内容,请让我知道 。

+1

看起来这种方法在过去的3年中没有成为完整版本。还有其他官方选择吗? – 2016-07-29 16:47:48

1

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

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

如果您可以为此提供代码,那将会很棒。 – Shmidt 2013-05-08 08:47:08