Базовое управление версиями модели данных и миграция данных
Базовые Данные предоставляют поддержку для того, чтобы управлять изменения к модели управляемого объекта, поскольку развивается Ваше приложение.
Можно только открыть, Core Data store с помощью модели управляемого объекта раньше создавал его. Изменение модели поэтому сделает его несовместимым с (и настолько неспособный открыться) хранилища, которые это ранее создало. При изменении модели поэтому необходимо изменить данные в существующих хранилищах к новой версии — изменение формата хранилища известно как миграция.
Для миграции хранилища Вам нужна и версия модели, используемой для создания его, и текущая версия модели, на которую Вы хотите мигрировать. Можно создать имеющую версию модель, содержащую больше чем одну версию модели управляемого объекта. В имеющей версию модели Вы отмечаете одну версию, как являющуюся текущей версией. Базовые Данные могут тогда использовать эту модель для открытия, персистентные хранилища создали использование любой из версий модели, и переместите хранилища на текущую версию. Чтобы помочь Удалить сердцевину Данных выполняют миграцию, тем не менее, Вам, вероятно, придется предоставить информацию о том, как отобразиться от одной версии модели другому. Эта информация может быть в форме подсказок в самой имеющей версию модели, или в отдельном отображающемся файле модели, который Вы создаете.
Сразу
Как правило, поскольку это развивается от одной версии до другого, многочисленных аспектов Вашего изменения приложений: классы Вы реализуете, пользовательский интерфейс, формат файла, и т.д. Необходимо знать и в управлении всех этих аспектов; нет никакого API, решающего проблемы, связанные со всеми они — например, Какао не обеспечивает средние значения для автоматического обновления пользовательского интерфейса, если Вы добавляете новый атрибут к объекту в Вашей модели управляемого объекта. Базовые Данные не решают все проблемы того, как Вы развертываете свое приложение. Это действительно, тем не менее, предоставляет поддержку для маленького — но важный и нетривиальный — подмножество задач необходимо выполнить, поскольку развивается приложение.
Управление версиями модели позволяет Вам указывать и различать различные конфигурации Вашей схемы.
Существует два отличных представления управления версиями: Ваша перспектива как разработчик и перспектива Базовых Данных. Они могут не всегда быть тем же. Различия обсуждены в Понимании Версий.
Формат имеющей версию модели управляемого объекта, и как Вы добавляете версию к модели, обсужден в Формате файла Модели и Версиях.
Базовые Данные должны знать, как отобразиться от объектов и свойств в исходной модели к объектам и свойств в целевой модели.
Во многих случаях Базовые Данные могут вывести отображение из существующих версий модели управляемого объекта. Это описано в Легкой Миграции.
При внесении изменений в модели таким образом, что Базовые Данные не могут вывести отображение от источника до места назначения, необходимо создать отображающуюся модель. Отображающаяся модель параллельна модели управляемого объекта, указывая, как преобразовать объекты в источник в экземпляры, подходящие для места назначения.
То, как Вы создаете отображающуюся модель, обсуждено в Отображающемся Обзоре.
Миграция данных позволяет Вам преобразовывать данные из одной модели (схема) другому, с помощью отображений.
Сам процесс миграции обсужден в Процессе Миграции.
То, как Вы выполняете миграцию, обсуждено в Инициировании Процесса Миграции.
Можно также настроить процесс миграции — т.е. как Вы программно определяете, необходима ли миграция; как Вы находите, что корректный источник и целевые модели и надлежащая модель отображения инициализируют менеджера по миграции; и затем как Вы выполняете миграцию.
Если Вы хотите инициировать миграцию сами, Вы только настраиваете процесс миграции. Вы могли бы сделать это к, например, искать расположения кроме основного пакета приложения для моделей или иметь дело с большими наборами данных путем выполнения миграции в нескольких передачах с помощью различных моделей отображения.
То, как можно настроить процесс, описано в Настройке Процесса Миграции.
При использовании iCloud существуют некоторые ограничения на то, какую миграцию можно выполнить.
При использовании iCloud необходимо использовать легкую миграцию. Другие факторы для знания описаны в Миграции и iCloud.
Несмотря на то, что Базовые Данные делают управление версиями и миграцию проще, чем обычно иначе имел бы место, эти процессы все еще нетривиальны в действительности. Все еще необходимо тщательно рассмотреть импликации выпуска и поддержки различных версий приложения.
Предпосылки
Этот документ предполагает, что Вы знакомы с Базовой архитектурой Данных и основными принципами использования Базовых Данных. Необходимо быть в состоянии идентифицировать части Базового Стека данных и понять роли модели, контекста управляемого объекта и персистентного координатора хранилища. Необходимо знать, как создать модель управляемого объекта, как создать и программно взаимодействовать с частями Базового Стека данных.
Если Вы не удовлетворяете эти требования, необходимо сначала считать Базовое Руководство по программированию Данных и связанные материалы. Вы строго призваны также работать через Базовое Учебное руководство по Утилите Данных.