Обратный инжиниринг базы данных Core Data приводит к ошибке «Не удается найти модель для исходного хранилища» - PullRequest
1 голос
/ 01 декабря 2011

У меня есть задача реорганизовать приложение для iPhone, которое использует Core Data для хранения некоторых значений.К сожалению, у меня нет доступа к исходному исходному коду, но у меня есть доступ к старым файлам базы данных, скопированным непосредственно с устройства, на котором установлена ​​старая версия приложения.

Мне нужно создать новую версиюприложение с некоторыми новыми функциями, и я пытаюсь импортировать данные из Sqlite Db и перенести их в новую версию.

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

Can't find model for source store

.

Игнорирование старых данных не вариант, потому что там хранятся важные данные.

Я поискал решения и попробовал каждое рекомендуемое решение, связанное с переносом данных, но все это не удалось.Может быть, я не могу использовать Sqlite, созданный другим приложением?Или я что-то упускаю из виду при реструктуризации структуры модели данных, даже когда я использовал в точности некоторые имена полей и типы данных?Есть ли другой способ обойти это?

1 Ответ

1 голос
/ 01 декабря 2011

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

http://www.techotopia.com/index.php/IOS_4_iPhone_Database_Implementation_using_SQLite

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...