2013-10-25 1 views
0

Я использую Core Data и легкую миграцию для своего iPhone-приложения.Сколько шагов миграции имеет облегченная миграция основных данных?

Предположим, что я создал 3 версии модели данных для приложения. Один пользователь установил раннюю версию моего приложения, а его версия модели данных все еще v1. Когда пользователь обновляет приложение до последней версии, имеющей версию модели данных v1, v2 и v3, что произошло во время обновления?

База данных sqlite сначала переносится с v1 на v2, а затем переходит с v2 на v3? Или просто прыгайте с v1 на v3?

ответ

2

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

Если вам нужно изменить данные или добавить новые данные, вы должны динамически определить версию модели и соответствующим образом отреагировать.

+0

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

0

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

Как правило, при легком переносе это будет работать нормально.