У меня есть существующее приложение для iPad, к которому я только что добавил управление версиями ключевых данных. Я прошел через документацию и выполнил описанные шаги. Теперь после выбора моей новой модели в качестве текущей версированной модели и пытается запустить его на моем DEV устройства от Xcode я получаю следующую ошибку:Перенос основных данных - таблица уже существует
2012-03-28 07:35:42.137 DocsOnTap[2603:707] CoreData: error: (1) I/O error for database at /var/mobile/Applications/06EECF01-3598-4513-8A3A-BE4FD49EEBF6/Documents/.DocsOnTap.sqlite.migrationdestination_41b5a6b5c6e848c462a8480cd24caef3. SQLite error code:1, 'table Z_2TAG already exists'
Единственное изменение, которое я сделал в моей модели было добавить в один новый объект. У меня есть таблица с именем Tag в моей модели - это, по-видимому, относится к этой ошибке.
Если я верну свою текущую версию модели к предыдущей версии модели, то я могу запустить мое приложение на своем устройстве с Xcode без ошибок.
Я читал, что могут возникнуть проблемы с попыткой использовать перенос данных ядра на устройствах-разработчиках. Однако я просто хочу проверить процесс, чтобы убедиться, что при обновлении нашего приложения в Appstore миграция работает так, как ожидалось для наших клиентов.
Вам необходимо установить оригинальное приложение с исходной моделью каждый раз, когда вы хотите протестировать миграцию. Когда вы вносите изменения в новую версию в dev, вам необходимо удалить и переустановить приложение (если вы не изменили версию dev). – Joe
Я не уверен, что я тебя понимаю. У меня есть оригинальное приложение с оригинальной моделью на моем устройстве. Я изменил существующее приложение, чтобы добавить обновление данных с ключевыми данными, добавил новую модель, сделал ее текущей моделью, добавил объект в новую модель. Затем я попытался запустить устройство Dev и получил ошибку выше. Что вы подразумеваете под «версией dev changes»? – daveywc
Я говорил, что если вы используете версию datamodel (например, версия 2.0), а затем добавляете таблицу. При первом запуске кода поверх модели данных версии 1 он будет автоматически переноситься, пока вы добавили код. Теперь, если вы остановите свой код и сделаете больше изменений в модели данных 2.0, он не будет автоматически переноситься, потому что вы только что изменили ту же модель и, вероятно, вам придется удалить и повторно запустить приложение. – Joe