Миграция основных данных очень медленная. Почему это вообще происходит?

Я разрабатываю настольное приложение Mac OS X, которое сохраняет свои очень простые данные в SQLite с Core Data и сопутствующим мобильным приложением для iPhone, которому просто нужно считывать данные из настольного приложения. Хотя они используют одну и ту же управляемую объектную модель, когда я загружаю базу данных SQLite в мобильное приложение, перенос данных занимает несколько секунд. Я действительно хотел бы избежать этого длительного ожидания, поскольку оно линейно связано с размером файла SQLite.

Почему данные из одной и той же управляемой объектной модели вообще нуждаются в переносе?

Кто-нибудь знает способ избежать необходимости миграции?


person tmh    schedule 24.06.2009    source источник
comment
Как узнать, что он мигрирует? Вам дан диалог? Миграция не произойдет, если вы явно не включите ее (см. Руководство по управлению версиями и миграции основных данных). Если ваша модель не изменилась, миграция не требуется, поэтому, возможно, происходит что-то еще.   -  person Hunter    schedule 24.06.2009
comment
Хороший вопрос. Я включаю его, потому что иначе он не загрузит магазин. Я почти уверен, что он мигрирует, потому что я профилировал долгое время загрузки с помощью Shark.   -  person tmh    schedule 24.06.2009


Ответы (1)


Я обнаружил, что вызывало эту проблему. Хотя это, вероятно, очень очевидно, я расскажу об этом, так что, надеюсь, никто больше не совершит эту ошибку...

В моем проекте было две разные управляемые объектные модели. Наличие более одного вынуждает Core Data попытаться выполнить миграцию, чтобы выяснить, какие данные соответствуют какой MOM.

В качестве решения я смог вручную объединить модели, чтобы оба источника данных могли быть представлены одной и той же MOM.

person tmh    schedule 25.06.2009