核心数据轻量级迁移和预填充数据库

时间:2012-11-07 06:39:34

标签: ios core-data core-data-migration

我有一个预先填充数据库的应用程序。我刚尝试了第一次迁移,效果很好。

我的问题是

如果更改仅在模型中,我是否需要重建预先填充的数据库,而不是数据库(更改是在预填充的数据库中使用“空”的动态属性)?

迁移是否会对预先填充的数据库生效?

现在没有崩溃,但我想知道我不应该注意副作用。

1 个答案:

答案 0 :(得分:1)

您只是进行轻量级迁移,这就是它正常工作的原因。

我猜你的模型中的变化并不太严重,因此轻量级迁移非常适应。

这意味着您现在在项目中同时拥有旧模型和新模型(如果展开模型)。如果不是这不应该工作。只需确保将旧的原始模型保留在项目中,否则迁移将不知道如何继续。

主要的副作用是,随着模型的发展,您可能无法再进行轻量级迁移,但如果您达到此目的,我建议您穿过该桥。

另一个副作用是迁移比直接使用持久对象协调器(以毫秒为单位)稍慢。还有一个失败的可能性很小(但我只能看到这种情况发生,如果你不能写入磁盘,因为迁移使你的数据库更大,然后由于磁盘空间不足而无法保存,但什么时候会发生:P)

就我个人而言,我会重建我的数据库,如果它在发货之前很快就是最后一件事,但是如果我在截止日期前我不会因为避免这种类型的迁移的好处并不那么大。 / p>