Миграция базовой модели данных

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


person karan    schedule 03.02.2014    source источник


Ответы (1)


Облегченная миграция выполняется при добавлении/изменении/удалении атрибута или объекта — обычно это простые операции.

Опция сопоставления необходима, когда вам нужно преобразовать одну схему в другую. Допустим, вы и объект A, но вам нужно разделить его на два: B и C. Затем вы должны указать CoreData, как сопоставлять сущности и атрибуты между схемами.

Этот процесс немного сложнее, чем облегченная миграция. Требуется создать файл модели сопоставления, при необходимости определить подкласс NSEntityMigrationPolicy и т. д., в зависимости от ваших потребностей.

person Maciej Oczko    schedule 03.02.2014
comment
Спасибо Oczko за быстрый ответ ... Если я правильно понимаю, что модель сопоставления требуется при разделении сущности A на две существующие сущности, такие как сущность B и сущность C. но у меня есть одно сомнение, я могу справиться с этим сценарием, например, удалив атрибуты из сущности A и вручную добавляется в B и C при создании новой модели. Делая таким образом, LightWeight миграции достаточно или нет? - person karan; 03.02.2014
comment
Если приложение находится в разработке, и вы не возражаете против потери данных, это нормально. В противном случае это было бы небезопасно, потому что CoreData не знает, как заполнить вновь добавленные атрибуты. - person Maciej Oczko; 03.02.2014