首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未发布的xcdatamodel版本和轻量级迁移

未发布的xcdatamodel版本和轻量级迁移
EN

Stack Overflow用户
提问于 2013-08-07 15:22:56
回答 2查看 77关注 0票数 1

如果我在A版和B版之间有多个未发布的xcdatamodel版本,那么如果我删除未发布的版本,轻量级迁移在我向公众发布后还能继续工作吗?

下面是一个更离散的例子:

代码语言:javascript
复制
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版本的应用程序。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-07 17:44:29

假设用于现有用户数据的格式可以通过自动轻量级迁移转换为当前格式,那么创建内部的、未发布的版本并不重要。

您需要在发布的应用程序中包含什么:任何用户可能正在使用的每个版本。在您的例子中,人们似乎只有1.0格式的商店,因此不需要包含1.1或1.2。如果情况并非如此--也就是说,如果某个用户可能拥有1.1或1.2版本的数据--那么您需要将它们包括在内。

因此,只要1.0 -> 1.3的更改适用于没有用户拥有1.1或1.2格式数据的自动轻量级迁移,您就可以删除中间版本。

票数 2
EN

Stack Overflow用户

发布于 2013-08-07 15:34:21

轻量级迁移只适用于某些类型的模型更改。最好的办法就是彻底测试一下。您可以安全地执行以下操作:

  • 向实体添加新的可选属性或关系
  • 向具有默认值的实体添加新的必需属性
  • 使用默认值将现有的可选属性更改为必需的
  • 重命名属性、关系或实体,并在核心数据实用程序窗格选项卡的“重命名ID”字段中指定旧名称。

核心数据模型版本控制和数据迁移编程指南列出了更多的操作,但是您应该再次测试所有这些操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18107377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档