对如何设置我的 .xcdatamodel 进行版本控制感到困惑

Posted

技术标签:

【中文标题】对如何设置我的 .xcdatamodel 进行版本控制感到困惑【英文标题】:Confused by how to setup my .xcdatamodel for versioning 【发布时间】:2013-08-12 17:53:39 【问题描述】:

我正在阅读核心数据模型验证和数据迁移编程指南,对如何设置初始版本号感到困惑。

我有一个现有的应用程序,我在其中没有为 Core Data 版本控制设置它。另外,我正在使用Magical Record。该应用程序的当前版本是1.3;我准备发布 1.4 并进行一些小改动,并且我想在 1.5 版本中更改其中一个核心数据实体(添加新属性)。我绝对需要版本控制,这样我的用户就不会丢失任何现有数据。我假设我必须设置当前版本以启用 1.5 版的轻量级版本控制。

问题是:Core Data 版本是否必须与应用程序版本相匹配?或者这是版本控制工作的常见方式?

【问题讨论】:

【参考方案1】:

Magical Record 有一个方便的方法。在您设置魔法记录使用的 AppDelegate 中。

[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"storeName"];

或者单击您的核心数据 .xcdatamodeld 然后顶部栏编辑器 > 添加模型版本

【讨论】:

非常感谢...所以我仍然需要手动更改版本号,还是 MR 会为我处理所有更改(添加属性)? (害怕尝试而不搞砸) 没问题。阅读文档时,请确保您在 master 分支上。 github.com/magicalpanda/MagicalRecord/tree/master ;-) 据我所见和测试,它会为您处理版本控制。我对此不是 100% 确定,所以为了安全起见,可能会添加一个模型版本。 模型版本是否必须与应用的版本相匹配? 不,您可能只决定在 1.4 版中更新您的核心数据模型,因此它不必匹配。

以上是关于对如何设置我的 .xcdatamodel 进行版本控制感到困惑的主要内容,如果未能解决你的问题,请参考以下文章

无法将 .xcdatamodel 置于源代码控制之下

iOS中xcdatamodel属性的最小值是啥意思?

如何将 xcdatamodel 文件转换为 xcdatamodeld 文件?

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

轻量级数据迁移

多个版本的 xcdatamodel 是不是意味着我们需要多个 xcmapingmodel 文件?