Концепции миграции данных важны для понимания, если вы собираетесь поддерживать ее с течением времени, поскольку в конечном итоге вы, вероятно, захотите изменить хотя бы некоторые вещи.
Идеально Lightweight Migration, где незначительное преобразование из вашей старой модели данных в вашу новую автоматическое. Как отмечается в документе, он может позаботиться о себе, если ваши изменения:
- Простое добавление нового атрибута
- не-необязательный атрибут становится опциональный
- Необязательный атрибут становится не- по желанию, и определяющее значение по умолчанию
переименовании объект или атрибут, также легко и почти автоматически.
Все, кроме этого - новые или удаленные объекты, новые или удаленные или измененные отношения - более волосатый. Это не невероятно сложно, но это определенно больше работы, с большим количеством возможностей для отказа.
Таким образом, небольшое предположение о вероятных потенциальных изменениях может облегчить и повысить эффективность предоставления небольшого пространства для маневра заранее. Очевидно, что если вы делаете слишком много, особенно с теоретическими, но в настоящее время неиспользованными отношениями, вы, вероятно, замедляете текущую систему и, возможно, без причины.
Стоит обратить внимание.
Итак, что вы говорите, если я выпущу версию 1.0 и в версии 1.1, если я сделаю небольшие обновления для моего CoreData (.xcdatamodel), такие как добавление/удаление/переименование атрибутов, пользователь не пострадает при загрузке v1.1 и что его сохраненные данные из версии 1.0 должны оставаться неповрежденными. Это верно? – hmthur 2010-12-16 04:39:42