• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Core Data Migration Exception
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Core Data Migration Exception


  • Subject: Core Data Migration Exception
  • From: Steve Steinitz <email@hidden>
  • Date: Thu, 3 Jan 2008 00:59:19 +1100

Hello,

I would like to play with Core Data's new Leopard migration tools on a
application I've been developing over the past year. However, the
default migration code is throwing an exception.


The app was created in Xcode 2 but is now an Xcode 3, Leopard-only
project. I mention that in case there is anything special about
migrating older Core Data Models. I saw something to that effect on
another list but don't think that's my current issue.


Here are the steps to reproduce the exception.  After reading the
Versioning and Migration Programming Guide I

1. used Xcode's Design menu to add a new model and then

2. added an new attribute to an entity.

3. I used the Design menu to create a Mapping Model.

4. In the code, I modified the default Model creation method,
   -managedObjectModel, by adding

    NSMigratePersistentStoresAutomaticallyOption YES

to the storeOptions dictionary argument of addPersistentStoreWithType

5. I further modified the -managedObjectModel code to avoid the error

    'Can't merge models with two different entities named ...'

I now use NSManagedModel's -initWithContentsOfUrl to create the Model
rather than one of its more convenient model-merging class methods. On
a side issue, that was fiddly to get right and remains fragile -- I
might put details in another thread.


Finally,

6. I used Xcode's Design menu to set the new, changed Model to be the
default Model then


7. cleaned, built and ran the app.

The app tried valiantly to start the migration but threw:

    NSInternalInconsistencyException
    Model already contains an entity named Bike.
    (full trace below)

I don't think there is anything special about the Bike entity nor was it
the one I changed -- its likely just the first one the migration process
encountered.


Thanks for any guidance,

Steve





(Please don't include this trace in replies)

NSInternalInconsistencyException

Model already contains an entity named Bike.

1 -[NSManagedObjectModel(_NSManagedObjectModelPrivateMethods) _addEntity:] (in CoreData)
2 -[NSManagedObjectModel setEntities:] (in CoreData)
3 -[NSManagedObjectModel copyWithZone:] (in CoreData)
4 -[NSObject copy] (in CoreFoundation)
5 +[NSManagedObjectModel modelByMergingModels:] (in CoreData)
6 +[NSManagedObjectModel modelByMergingModels:forStoreMetadata:] (in CoreData)
7 +[NSManagedObjectModel mergedModelFromBundles:forStoreMetadata:] (in CoreData)
8 -[NSStoreMigrationPolicy sourceModelForStoreAtURL:metadata:error:] (in CoreData)
9 -[NSStoreMigrationPolicy(InternalMethods) _gatherDataAndPerformMigration:] (in CoreData)
10 -[NSPersistentStoreCoordinator addPersistentStoreWithType:configuration:URL:options:error:] (in CoreData)
11 -[WWSalesReporting_AppDelegate persistentStoreCoordinator] (in WWSales)
12 -[WWSalesReporting_AppDelegate managedObjectContext] (in WWSales)
13 -[NSObject(NSKeyValueCoding) valueForKey:] (in Foundation)
14 -[NSObject(NSKeyValueCoding) valueForKeyPath:] (in Foundation)
15 -[NSBinder _valueForKeyPath:ofObject:mode:raisesForNotApplicableKeys:] (in AppKit)
16 -[NSBinder valueForBinding:resolveMarkersToPlaceholders:] (in AppKit)
17 -[NSObjectParameterBinder _updateObject:observedController:observedKeyPath:context:] (in AppKit)
18 -[NSObjectParameterBinder _observeValueForKeyPath:ofObject:context:] (in AppKit)
19 -[NSBinder _performConnectionEstablishedRefresh] (in AppKit)
20 -[NSObject(NSKeyValueBindingCreation) bind:toObject:withKeyPath:options:] (in AppKit)
21 -[NSNibBindingConnector establishConnection] (in AppKit)
22 -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] (in AppKit)
23 loadNib (in AppKit)
24 +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:] (in AppKit)
25 +[NSBundle(NSNibLoading) loadNibFile:externalNameTable:withZone:] (in AppKit)
26 +[NSBundle(NSNibLoading) loadNibNamed:owner:] (in AppKit)
27 -[WWSalesReporting_AppDelegate applicationDidFinishLaunching:] (in WWSales)
28 _nsnote_callback (in Foundation)
29 __CFXNotificationPost (in CoreFoundation)
30 _CFXNotificationPostNotification (in CoreFoundation)
31 -[NSNotificationCenter postNotificationName:object:userInfo:] (in Foundation)
32 -[NSNotificationCenter postNotificationName:object:] (in Foundation)
33 -[NSApplication _postDidFinishNotification] (in AppKit)
34 -[NSApplication _sendFinishLaunchingNotification] (in AppKit)
35 -[NSApplication(NSAppleEventHandling) _handleAEOpen:] (in AppKit)
36 -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] (in AppKit)
37 -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] (in Foundation)
38 _NSAppleEventManagerGenericHandler (in Foundation)
39 aeDispatchAppleEvent(AEDesc const*, AEDesc*, unsigned long, unsigned char*) (in AE)
40 dispatchEventAndSendReply(AEDesc const*, AEDesc*) (i


_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Core Data Migration Exception
      • From: Diederik Hoogenboom <email@hidden>
  • Prev by Date: Re: Scripting Bridge && filteredArrayUsingPredicate
  • Next by Date: Re: Scripting Bridge and Finder selection
  • Previous by thread: Re: Scripting Bridge && filteredArrayUsingPredicate
  • Next by thread: Re: Core Data Migration Exception
  • Index(es):
    • Date
    • Thread