2011-10-04 4 views
0

J'essaie d'utiliser la migration automatique légère dans mon application. J'ai fait les étapes suivantes:Erreur de migration légère automatique CoreData

  1. Créer une nouvelle version du modèle.
  2. Modifier la nouvelle version du modèle.
  3. Définissez les options NSMigratePersistentStoresAutomaticallyOption et NSInferMappingModelAutomaticallyOption sur YES lors de la création de persistentStoreCoordinator.
  4. Définition de la version actuelle sur la nouvelle version.

et a obtenu une erreur: raison = « Vous ne trouvez pas le modèle pour le magasin source »

J'ai essayé product-> Clean en vain. Des idées?

Modifier: J'ai oublié de mettre dans les détails du modèle.

J'ai deux fichiers .xcdatamodel. Le premier a deux entités, événement et lieu. Le second a une entité, EventDate. Je n'utilise plus le second code .xcdatamodel mais j'ai laissé le fichier dans le projet. J'essaie d'ajouter une nouvelle entité Update au premier fichier de modèle.

+0

Avez-vous ajouté un nouveau modèle à utiliser comme nouveau modèle? Vous devez ajouter une nouvelle version à votre modèle existant. – rckoenes

+0

@rckoenes Oui, via Éditeur-> Ajouter une version du modèle dans Xcode. – jcm

Répondre

0

L'erreur « » Impossible modèle trouver pour le magasin source » signifie que le fichier .xcdatamodel initialement utilisé pour créer le magasin persistant existant ne peut être trouvée.

Censé vous avez commencé avec ces deux fichiers de modèle (la version numéro est la version de l'application et non le modèle de données):

oneEntityModelv1.xcdatamodel 
twoEntityModelv1.xcdatamodel 

... et que vous souhaitez migrer vers ce modèle de données:

threeEntityModelv2.xcdatamodel 

la version v2 de votre application devrait inclure les trois fichiers pour que la migration ait lieu.

+0

Y at-il quelque chose de spécial que je dois faire pour m'assurer de cela? Je n'ai pas supprimé/supprimé les fichiers xcdatamodel lorsque j'ai ajouté le nouveau modèle. – jcm

0

Le problème était que nous utilisions mergedModelFromBundles pour instancier notre modèle. Apparemment, cela ne fonctionne pas bien avec la migration automatique légère. La correction consistait à

  1. de supprimer le xcdatamodel non utilisé.
  2. Supprimez le fichier de base de données.
  3. version le modèle restant.
Questions connexes