为我的核心数据数据模型使用轻量级迁移。每次更新都在模拟器中顺利进行。
在我的设备上,我没有逐个完成每次迁移。例如,我的设备有版本3,我在版本5.在模拟器上,我从3到4然后从4到5,但当设备尝试从3到5时,它与标准崩溃“无法找到源存储的模型”错误。
如果我依赖轻量级迁移(即用户无法跳过对我的应用的更新),这似乎无法更新我的应用程序。
是这种情况,还是我可能做错了什么呢?
答案 0 :(得分:3)
轻量级迁移旨在累积。如果您不使用正式版本控制,则尤其如此。
我总是告诉客户,轻量级迁移主要用于开发目的。你指望一个软件可以解决版本之间的变化。变化越小越简单,软件管理的越好。在某些时候,软件要处理的变化变得复杂。
如果没有正式的版本控制,只要软件可以找出更改,您原则上就可以跳过“版本”。在实践中,迁移软件很容易混淆,如果您做出任何实质性更改,将会中断。
对于部署,您应始终计划使用“全权”版本化迁移。如果您想象许多更新,尤其如此。您是否希望该软件能够处理从版本1迁移到版本5或更高版本以及介于两者之间的任何版本之间的任何版本?
请记住,以前的模型文件必须存在才能进行任何迁移。如果您打算跳过正式或其他版本,则必须保留要迁移的所有先前版本的所有模型文件。如果版本5的更新未提供或保留版本3的模型,则无法执行现有商店的任何迁移。实际上,这意味着为每个版本提供所有以前版本的模型文件。串联升级通常更容易,更安全,最终用户习惯这样做。
在没有详细查看模型的情况下,真的无法确定您的实际问题是什么。这可能很简单,因为迁移对于轻量级迁移软件来说很复杂。该软件无法理解版本5如何映射到版本3上。