多模型的Core Data迁移

3
我有一个使用CoreData的iOS应用程序。该应用程序已经在Apple Store上发布,使用的是我的模型的V1版本,我已经通过UI等标准技术升级到了V2版本。
V2版本的应用程序尚未上线,目前正在由一些人进行测试。对V2版本进行了一些更改,这显然会导致V3模型的出现。
我的问题是,如果我同时发布V2和V3版本的模型,升级是否会成功进行。

1
据我所知,一个应用程序只能有一个被标记为“当前版本”的Core Data模型版本。我猜你想知道的是是否可以从V1升级到V3和从V2升级到V3。这个答案取决于你的模型版本之间的具体变化以及你可能创建的任何显式映射模型。发布任何类似这样的细节将会很有帮助。 - Jonathan Arbogast
不清楚你的问题是什么 - 在应用程序中同时使用多个版本的模型可能有效,但需要大量的努力。也许你的意思是想要使用V3模型并将V1和V2用户升级到该模型? - RyanR
@JonathanArbogast是正确的,除非您可以为每个模型拥有一个当前版本,而不是每个应用程序(例如,您可以拥有两个独立的模型,每个模型都有自己的版本)。要确定是否可以升级,请阅读https://developer.apple.com/library/ios/documentation/cocoa/conceptual/CoreDataVersioning/Articles/vmLightweightMigration.html。此外,如果无法进行轻量级迁移,则我认为从V2迁移到V3没有意义。执行版本之间的迁移,而不是测试构建之间的迁移。 - Petro Korienev
我不知道之前的答案发生了什么事,但是在拥有V1的情况下,从V2转到V3是可能的。我刚刚尝试了一下,它可以工作。 - Sharath
1个回答

1

可以进行多个轻量级迁移。

我有模型的V1版本。然后为V2添加了一个新实体并将其设置为当前模型。 之后,我添加了一个新模型V3,并在V2中创建的新实体中添加了一个新属性。


只要旧的模型版本仍然存在于您的项目中,那么一切都很好。如果您已经删除了V1模型,那么您将会遇到麻烦。 - RyanG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接