2010-04-27 122 views
1

我这是对sqlite的使用核心数据的应用程序, 现在我有有一些数据库结构的变化说添加新表iPhone应用程序更新(在sqlite的使用核心数据)

一个更新,我知道当应用程序得到更新,它只更新应用程序二进制文件,文档目录中的任何内容都不会被更改

当应用进行了更新,并在第一时间launchs和运行

[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; 

它会发现在sqlite的数据模型和数据库结构之间的差异,将抛出一个异常,并退出。

错误:“用于开实体店的模式是用来创建存储的一个不兼容”

所以,在这里任何人都可以给我一些想法如何时,有一个数据库结构的变化来更新应用程序?

我想我们可以在第一次启动更新时运行DB脚本来创建新表。

但是,如果还有其他更改,例如更改某些字段的类型或删除某些字段,并且我们需要迁移旧数据,这实在令人头疼。 在这种情况下,唯一的方法是创建一个新的应用程序?

有没有人试过类似的东西?

回答

7

您需要对您的数据模型进行版本处理,以处理您添加的任何新字段。苹果已经在这方面详细描述了documentation。如果你只是添加字段,这很容易。我没有尝试删除字段,但我想它也很简单。一旦你进入了变化领域,你会引入一点复杂性,但这并不难。

+0

感谢您引导我朝着正确的方向发展,因为我对新版本有非常复杂的变化,所以我不得不这样做,因为它只是卖了很少的副本,我已经从销售中删除了它在应用商店。 – owen 2010-04-28 01:12:00

相关问题