我已经使用轻量级迁移为我的应用程序的即将推出的1.1版成功编写了我的核心数据模型版本。我对这种方法的可维护性有疑问。
如果我再次在我的应用程序的v1.2中修改我的模型,并且用户从v1.0更新到1.2,那么两个迁移是否会按顺序成功应用?也就是说,如果我保留模型的版本,迁移是否会累积?
答案 0 :(得分:3)
如果两个迁移都是轻量级的,那么就不需要按顺序应用这两个迁移。自lightweight migrations can occur on以来:
在最后一种情况下,您提供商店中使用的名称(“规范名称”)。默认情况下,这是属性名称,因此它最终是在数据模型的第一个版本中调用属性的任何内容。然后,只要您单独保留规范名称,就可以任意更改属性名称。
因此,净影响是没有一系列事件,其中Core Data可以弄清楚如何从版本1迁移到版本2以及从版本2迁移到版本3,但不能直接从版本1迁移到版本3.
相反,如果您通过映射模型指定手动映射,那么您将不得不编写代码以累积地应用所有手动映射,或者在数据模型前进时提供O(n ^ 2)映射。