Основная миграция данных - не удается найти модель сопоставления для миграции - PullRequest
9 голосов
/ 20 марта 2011

Я следовал руководству, найденному здесь: http://www.timisted.net/blog/archive/core-data-migration/ но продолжаю получать «Не удается найти модель сопоставления для миграции», когда я запускаю приложение с новой моделью. Я пробовал это в xcode 3 и xcode 4 несколько раз, но никогда не смог заставить его работать.

В настоящее время мои параметры установлены на:

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
    [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
    [NSNumber numberWithBool:NO], NSInferMappingModelAutomaticallyOption,
    nil];

Раньше у меня был установлен параметр YES для параметра infer, но тогда он просто мигрировал, не вызывая мои пользовательские политики, которые мне нужно перенести, что, как я полагаю, связано с тем, что он не мог найти модель сопоставления раньше.

По какой причине мои картографические модели не были выбраны? Я дважды проверил, что в предыдущую модель не было внесено никаких изменений, сравнив ее с SVN-версией.

Спасибо.

Ответы [ 4 ]

8 голосов
/ 21 марта 2011

Оказывается, что модель сопоставления должна быть частью пакета .xcdatamodeld, что невозможно сделать в xcode 4. С ним она отлично работает.

Примечание: мой файл сопоставления перестал работать снова, и я обнаружил, что это было 0KB на диске, поэтому мне пришлось воссоздать его снова, и после этого он работал нормально.Я быстро совершил это и посмотрю, исчезнет ли он снова.Проблема в том, что Xcode 4 индексирует его или что-то в этом роде, поэтому в xcode он выглядит нормально, но в файловой системе он пуст.

См. Мой комментарий ниже по причине (mapc (компилятор карт) xcode 4 не работает).1005 *

** ЭТО БЫЛО ИСПРАВЛЕНО В НОВЫХ XCODE / SDK. **

4 голосов
/ 27 июня 2011

У меня была похожая проблема:

Пользовательская политика в моей модели xcmapping не будет выполнена

в моем случае оно не было выполнено, поскольку моя миграция не внесла никаких изменений в таблицы - возможно, это и ваша проблема.

2 голосов
/ 07 мая 2011

Обязательно установите исходную модель данных в качестве старой версии, а пункт назначения - в качестве новой ... Я получил ошибку выше, когда они были в обратном направлении.

0 голосов
/ 21 марта 2011

вам нужно создать новую версию схемы, а не менять текущую версию. Предполагая, что вы сделали это, какие изменения были внесены в модель? некоторые изменения слишком радикальны, чтобы их можно было достоверно оценить.

...