核心数据迁移:是否总是再次创建新的SQLite表?

时间:2014-08-15 10:41:05

标签: macos core-data

我对我的数据库进行了一些小改动(只是在我的模型中添加了一个新实体)并创建了一个轻量级的映射模型来处理迁移。

迁移似乎仍然很慢,查看迁移日志,似乎再次创建所有SQL Lite表并迁移所有数据。

那么,Core Data的工作原理是什么?我无法更快地迁移?

PS。我是一个复杂的模型,有30个实体和许多关系。它们不是从同一父实体继承的。也许核心数据不是为处理这种复杂性而设计的?

1 个答案:

答案 0 :(得分:0)

迁移是一种相对罕见的事件。这可能需要一段时间,特别是对于包含大量数据的大型复杂模型。

我不完全确定是否会创建新表,但我认为确实发生了这种情况。如果Core Data没有为我做这件事,我将如何实现迁移。

以下是一些改进建议:

  1. 确保迁移在后台进行。告知您的用户并尽可能保持应用响应。
  2. 当你创建一个轻量级的映射模型时,可能会出现问题"。如果您所做的更改不超过某个更改子集(请参阅docs),那么#34;轻量级迁移" 要求您创建映射模型吗?