如果我在A版和B版之间有多个未发布的xcdatamodel版本,那么如果我删除未发布的版本,轻量级迁移在我向公众发布后还能继续工作吗?
下面是一个更离散的例子:
xcdatamodel version 1.0 --> Release to public A
xcdatamodel version 1.1 --> unreleased (based on v1.0)
xcdatamodel version 1.2 --> unreleased (based on v1.1)
xcdatamodel version 1.3 --> Release to public B (based on v1.2)我想确保当我提交B版时,来自A版的用户将被正确迁移。或者说这是一种非常糟糕的方式?我明白,如果我不关心我的测试设备上的数据,我只会将xcdatamodel 1.3版建立在1.0版上,并将所有的新内容都放在该版本中--我只是不想丢失我的测试设备上的数据,这些设备上已经有了v1.1和v1.2版本的应用程序。
谢谢!
发布于 2013-08-07 17:44:29
假设用于现有用户数据的格式可以通过自动轻量级迁移转换为当前格式,那么创建内部的、未发布的版本并不重要。
您需要在发布的应用程序中包含什么:任何用户可能正在使用的每个版本。在您的例子中,人们似乎只有1.0格式的商店,因此不需要包含1.1或1.2。如果情况并非如此--也就是说,如果某个用户可能拥有1.1或1.2版本的数据--那么您需要将它们包括在内。
因此,只要1.0 -> 1.3的更改适用于没有用户拥有1.1或1.2格式数据的自动轻量级迁移和,您就可以删除中间版本。
发布于 2013-08-07 15:34:21
轻量级迁移只适用于某些类型的模型更改。最好的办法就是彻底测试一下。您可以安全地执行以下操作:
核心数据模型版本控制和数据迁移编程指南列出了更多的操作,但是您应该再次测试所有这些操作。
https://stackoverflow.com/questions/18107377
复制相似问题