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

标签 ios core-data core-data-migration

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

我的问题是

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

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

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

最佳答案

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

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

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

主要的副作用是,随着模型的发展,您可能无法再进行轻量级迁移,但我建议您跨过那座桥(如果您能做到的话)。

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

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

关于ios - 核心数据轻量级迁移和预填充数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13264408/

相关文章:

ios - 自定义 UITableView 单元格导致错误

ios5 - 使用未声明的标识符 'NSMigratePersistentStoresAutomaticallyOption'

ios - 如何删除tableView中的用户默认数据?

ios - 警报正文中的 URL

java - CoreData 和 Hibernate 的区别

swift - 文本在自定义单元格中困惑

ios - 核心数据和数据完整性 : read operations vs write operations. 如何保护?

ios - xcode 10 - 核心数据迁移 String 到 Int

ios - 核心数据迁移错误 Cocoa error 134130 Can't find model for source store

ios - 在 Google map objective-c 中调整、拖动和缩放 GMSCircle