I'm still having problems migrating to a new version of my data model.  I 
created a small project to test migration and everything worked smoothly -- so 
smoothly that trying to get it to fail wasn't easy.  But, doing the same sorts 
of things to migrate to a new version of the data model in my main app is 
failing all over the place and I have no idea why.

I'm using versioning.  I use Design > Data Model > Add Model Version.  A new 
version of the data model is created.  I edit the unnumbered data model and 
make sure it's set as the Current Model Version.  To keep things simple, I've 
been trying to add a single string attribute to a single entity.  Build & Go 
and I get:

Error Domain=NSCocoaErrorDomain Code=134130 UserInfo=0x2002a29a0 "Persistent 
store migration failed, missing source managed object model.

If I delete the attribute that I just added and Build & Go again, everything 
works smoothly.

All entities in the model have their own custom classes and several of those 
custom entities have categories, where I've been keeping the methods.

If I'm building a managedObjectModel using -modelByMergingModels, do I need to 
be doing something differently?  My managedObjectModel method is below.  I'll 
post the -persistentStoreCoordinator method, as well, if it would help (adding 
it to this email puts me over the size restriction).

Thanks.

- (NSManagedObjectModel *)managedObjectModel {
        
        if (managedObjectModel) return managedObjectModel;
        
        NSManagedObjectModel *prototypeModel;

        // create object for prototype model
        NSString *prototypePath = [[NSBundle mainBundle] 
pathForResource:@"IconConfig" ofType:@"mom"];
        
        if (prototypePath == nil) {
                prototypePath = [[NSBundle mainBundle] 
pathForResource:@"IconConfig" ofType:@"momd"];
        }
        NSLog(@"Prototype path is %@", prototypePath);
        
        NSURL *prototypeURL = [NSURL fileURLWithPath:prototypePath];
        NSLog(@"Prototype URL is %@", prototypeURL);
        
        prototypeModel = [[NSManagedObjectModel alloc] 
initWithContentsOfURL:prototypeURL];
        
        if (!prototypeModel) {
                NSLog(@"prototype model couldn't be found.");
        }
        
        // create object for media resouces model
        NSString *resourcesPath = [[NSBundle mainBundle] 
pathForResource:@"MediaResources" ofType:@"mom"];
        if (!resourcesPath) {
                return nil;
        }
        
        NSURL *resourcesURL = [NSURL fileURLWithPath:resourcesPath];
        NSManagedObjectModel *resourcesModel = [[NSManagedObjectModel alloc] 
initWithContentsOfURL:resourcesURL];
        
        // create merged model
        managedObjectModel = [NSManagedObjectModel 
modelByMergingModels:[NSArray arrayWithObjects:prototypeModel, resourcesModel, 
nil]];
        
    return managedObjectModel;
}
_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to