Миграция данных


Миграция данных

Необходимость добавления новых данных или изменения способа хранения старых данных является достаточно распространенной проблемой в разработке приложений. Но из распространенности вовсе не следует, что проблема имеет простое решение. Core Data старается всеми силами избежать повреждения или потери данных, поэтому мы должны указать, что делать с новой сущностью Fugitive.

Миграция старых данных в новую модель.

Модель данных изменилась, но теперь мы должны позаботиться о том, чтобы изменения распространились на всех уровнях Core Data. Для этого необходимо выполнить миграцию данных.

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

Две модели — две версии.

Изменить модель данных вручную несложно, но для подсистемы Core Data должны быть доступны как старые, так и новые данные. Мы предоставляем Core Data доступ к обеим версиям, но сообщаем, что они являются разными версиями одной модели. И что еще важнее, необходимо указать, какая из двух версий должна считаться текущей.

Xcode упрощает изменение Версии модели данных.

К счастью, новая версия модели данных достаточно легко создается в Xcode.

Выделите каталог iBountyHunter.xcmodeld, включите на панели Utilities режим File Inspector. В секции Versioned Data Model выберите в списке Current строку «iBountyHunter 2».

Измените новую модель данных.

Core Data поддерживает «облегченную» миграцию данных.

Облегченная миграция данных — мощный инструмент Core Data, позволяющий обновить базовую модель данных без описания модели соответствия. Эта функция работает только с несложными изменениями данных: добавлением новых атрибутов, преобразованием обязательного атрибута в необязательный или необязательного атрибута в обязательный со значением по умолчанию. Поддерживается ограниченное переименование атрибутов, но с ним возможны сложности.

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

Отлично! Приложение работает с новой моделью данных.
  • Дата: 2-01-2015, 22:48

Предыдущие статьи сайта:

Понравилась статья? Ставь лайки, рассказывай друзьям!



Отзывы о статье: Миграция данных

Технологии, секреты и фишки Apple: Iphone, iPad, iPod