Podstawowe dane - lekkie migracje i wiele podstawowych plików modelu danych (xcdatamodel)

Mam problem z wykonaniem lekkiej migracji podczas migracji ze sklepu, który jest zdefiniowany przez dwa oddzielne pliki xcdatamodel.

W wersji 1.0 mojej aplikacji modele zostały podzielone na model analityczny, model-A i wszystko inne w modelu-B. Podczas kompilacji modele byłyby grupowane i wszystko przebiegało sprawnie.

Podczas pracy nad nową wersją 1.1 zaktualizowałem model-B, dodając nową wersję modelu do modelu B i ustawiając tę ​​nową wersję jako aktywną.

Problem pojawia się podczas aktualizacji z 1.0 do 1.1. Wygląda na to, że Core Data sprawdza magazyn modelu na dysku (utworzony przez wersję 1.0) i szuka modelu, który go opisuje, ale nie jest w stanie znaleźć POJEDYNCZEGO modelu, który definiuje cały sklep (model-A obejmuje tylko analitykę, a model-B obejmuje wszystko inne), więc zgłasza błąd „Nie można znaleźć modelu dla magazynu źródłowego”.

Czy ktoś znalazł rozwiązanie do oddzielania modeli, ale nadal pozwalał na aktualizację + lekkie migracje do pracy bez dodatkowych kłopotów z definiowaniem niestandardowych migracji?

Oto fragment kodu używanego do ładowania modeli:

    NSArray *modelNames = [NSArray arrayWithObjects:@"model-A", @"model-B", nil];
    NSMutableArray *models = [NSMutableArray array];
    for (NSString *name in modelNames)
    {
        LogInfo(@"loading model %@", name);
        NSURL *modelURL = [[NSBundle mainBundle] URLForResource:name withExtension:@"momd"];
        NSManagedObjectModel *model = [[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL] autorelease];
        [models addObject:model];
    }

    // combine all the separate models into one big one
    objectModel = [[NSManagedObjectModel modelByMergingModels:models] retain];

    NSURL *documentsDirectory = [NSURL fileURLWithPath:[SuperFileManager documentsDirectory] isDirectory:YES];
    NSURL *storeURL = [documentsDirectory URLByAppendingPathComponent:@"database.sqlite"];
    NSError *error = nil;

    coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:objectModel];
    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                                                  [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
                                                  [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption,
                                                  nil];

    if (![coordinator addPersistentStoreWithType:NSSQLiteStoreType
                                   configuration:nil
                                             URL:storeURL
                                         options:options
                                           error:&error])
    {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }

questionAnswers(4)

yourAnswerToTheQuestion