我有一个带有预填充数据库的应用程序。我刚刚尝试了第一次迁移,效果很好。
我的问题是
如果更改仅在模型中,而不是在数据库中(更改是在预填充数据库中为“空”的动态属性),我是否需要重建预填充数据库?
迁移是否会对预填充的数据库生效?
它现在工作时没有崩溃,但我想知道没有我应该注意的副作用。
最佳答案
您只是进行了轻量级迁移,这就是它正常工作的原因。
我猜你的模型的变化并不太严重,因此轻量级迁移是完全适应的。
这意味着现在您的项目中同时拥有旧模型和新模型(如果您扩展模型)。如果不是,这应该不起作用。只需确保将旧的原始模型保留在项目中,否则迁移将不知道如何继续。
主要的副作用是,随着模型的发展,您可能无法再进行轻量级迁移,但我建议您跨过那座桥(如果您能做到的话)。
另一个副作用是迁移速度比直接使用持久对象协调器时稍慢(大约毫秒)。还存在发生故障的远程可能性(但我只能看到这种情况发生,如果您无法写入磁盘,因为迁移使您的数据库更大,然后由于磁盘空间不足而无法保存,但是什么时候会发生这种情况发生:P)
就我个人而言,如果在发货之前重建我的数据库是最后一件事,那么我会重建我的数据库,但如果我在截止日期前,我不会,因为避免这种类型的迁移的好处并不是那么巨大。
关于ios - 核心数据轻量级迁移和预填充数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13264408/