Должен ли я включить управление версиями в моем первом выпуске, чтобы использовать облегченную миграцию в последующих выпусках? - PullRequest
2 голосов
/ 17 мая 2011

Мой страх - это изменение модели данных в последующих выпусках.

Я создал новый файл xcdatamodel в XCode, который не является версионным по умолчанию. Я знаю, что вы можете щелкнуть где-нибудь и сделать это «первой версией». В дереве групп и файлов файл xcdatamodel получает толстую черную стрелку с левой стороны, которую вы можете щелкнуть, чтобы увидеть все версии внутри.

Мой файл не имеет этой толстой стрелки, поэтому не имеет версии.

Это вызывает большие проблемы позже? Нужно ли его версии с самого начала, чтобы облегченная миграция работала позже? После того, как приложение будет отправлено пользователям, его уже нельзя будет изменить.

1 Ответ

3 голосов
/ 09 июня 2011

Вам не нужно настраивать облегченную миграцию в первом выпуске. Когда вы решите мигрировать, вам нужно сделать две вещи. Во-первых, вы должны сохранить копию каждой версии вашей модели данных. Эти модели обычно хранятся в файле .xcdatamodeld. Кроме того, вы можете просто сохранить кучу файлов .xcdatamodel. Тем не менее, лучше использовать файл .xcdatamodeld, чтобы все было организовано. Во-вторых, вы должны активировать облегченную миграцию с вашим постоянным координатором магазина. Создавая свой постоянный координатор магазина, вы будете делать что-то вроде следующего:

__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];

// Automatically migrates the model when there are small changes.
NSDictionary * options = [NSDictionary dictionaryWithObjectsAndKeys:
                          [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
                          [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, 
                          nil];
[__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType 
                                           configuration:nil 
                                                     URL:storeURL 
                                                 options:options 
                                                   error:&error];

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...