9
votes

Migration de données de base - Impossible de trouver le modèle de cartographie pour la migration

J'ai suivi le guide trouvé ici: http://www.timisted.net/blog/archive/core-data- Migration / Mais continuez à obtenir "Impossible de trouver le modèle de mappage de migration" lorsque je démarre l'application avec le nouveau modèle. Je l'ai essayé dans Xcode 3 et Xcode 4, plusieurs fois, mais ne peut jamais le faire fonctionner.

Actuellement, mes options sont définies sur: xxx

J'avais oui ensemble pour l'option de déduction avant, mais il s'agissait simplement de migrer sans appeler mes politiques personnalisées que j'ai besoin de migrer , que je suppose, c'est parce que cela ne pouvait pas trouver le modèle de mappage avant non plus.

Toute raison que mes modèles de mappage ne sont pas ramassés? J'ai vérifié qu'aucune modification n'a été apportée au modèle précédent en le contrôlant contre la version SVN de celui-ci.

Merci.


0 commentaires

4 Réponses :


0
votes

Vous devez créer une nouvelle version du schéma, par opposition à la modification de la version actuelle. Présumer vous avez fait cela, quels changements ont été apportés au modèle? Certains changements sont trop drastiques pour être déduits de manière fiable.


11 commentaires

Oui, mon modèle est versionné et j'ai créé une nouvelle version. Comme je l'ai dit dans mon message, j'utilise un modèle de mappage et des politiques personnalisées, sans essayer de le déduire. Le problème est que cela ne trouve pas le modèle de cartographie pour une raison quelconque.


Excusez-moi, j'ai mal interprété le code, seriez-vous capable de poster une capture d'écran de votre modèle de cartographie?


Je ne suis pas sûr que cela serait utile car ils ne sont pas utilisés. Le journal indique "Impossible de trouver le modèle de mappage de migration". J'ai vérifié et le modèle de mappage a les bonnes versions sélectionnées. Au fait, quelle est la bonne façon de tester cela. Je l'ai installé depuis un ancien espace de travail avec l'ancienne version du modèle, puis en utilisant un nouvel espace de travail pour simuler la mise à niveau. Cela semble fonctionner quand je le dis de déduire le modèle pour que je suppose que ça va.


C'était sûr que vous aviez le bon vieux modèle et le nouveau modèle sélectionné (les deux mamans doivent être incluses dans la construction) J'utilise généralement l'ancienne construction pour générer les données, puis remplacez l'application avec la nouvelle construction.


Le journal dit-il autre chose?


SourceModel: {()} DestinationModel: {()} Même modèle: Pas de modèle équivalent: Aucune raison: impossible de trouver le modèle de cartographie pour la migration


SOURCEMODEL.VERSIONIFIANTIFICIERIFICIERSIENTIFIERIFICIERSMODEL.VERSIONIFICIERIFICIERIFICIERS est ce qui a été utilisé pour imprimer le premier 2. Puis a == et un appel égal. Et la dernière pièce est la raison.


Je n'ai pas imprimé toutes les informations de l'utilisateur, mais celle-ci est très longue avec une tonne de choses de mon modèle qui n'est pas utile.


Avez-vous ajouté les modèles et le modèle de mappage à la phase de copie de la construction? Si tel est là, vous avez défini les touches que vous avez énumérées, et vous migrez dans la bonne direction, alors cela devrait fonctionner ...


Je n'ai aucune des données de base dans la zone de copie, mais tout cela se trouve dans la zone des sources de compilation. Devrait-il aussi être dans la zone des ressources de la copie?


Je l'ai eu en marche en revenant à Xcode 3 et en vous assurant que le mappage de modèle faisait partie du package .xcdatamodeld. Je l'avais là-bas avant mais je suppose que quelque chose d'autre était faux alors. Merci quand même pour l'aide.



8
votes

Etepte du modèle de cartographie doit faire partie du package .xcdatamodeld, qui est impossible à faire dans Xcode 4. avec elle, cela fonctionne bien.

Remarque: mon fichier de mappage a cessé de fonctionner à nouveau, et j'ai constaté que c'était 0Ko sur le disque, alors je devais la recréer à nouveau et cela a fonctionné bien après cela. Je l'ai rapidement commis et je verrai si cela disparaît à nouveau. Le problème est que Xcode 4 indexe-le ou quelque chose de sorte qu'il a l'air bien en Xcode, mais sur le système de fichiers, il est vide.

Voir mon commentaire ci-dessous pour la raison (Xcode 4's Mapc (Compiler) est cassé).

** Ceci a été corrigé dans les nouveaux XCodes / SDKS. **


6 commentaires

Il y a encore quelques arêtes brutes dans Xcode 4, et je pense que nous venons d'en trouver un autre, content que vous l'iez cependant.


En fait, j'ai également constaté que cela a cessé de fonctionner à nouveau après un peu et que le fichier s'est avéré être 0 Ko, alors je pense que Xcode 4 corrompt le fichier mais le garde indexé ou quelque chose du fait que son vide n'est pas montré en Xcode même , mais visible dans Finder. Très gênant mais maintenant que je sais que, il sera rapide à réparer à l'avenir. Merci pour toute l'aide hier.


Ddid vous trouvez une meilleure solution à ce problème? Je l'ai eu lieu plusieurs fois maintenant. L'ouverture et le bâtiment en XC3 le corrigent parfois, mais je pense que cela est un effet secondaire du cycle de construction ne fixant pas mon projet Xcode 4.


Oui, je l'ai compris. Voici mon rapport de bogue à Apple (qu'ils sont duplés comme un problème connu): nous avons deux modèles avec un modèle de mappage utilisé pour la migration. Lors de la compilation et de l'exécution de l'application de Xcode 3, la migration fonctionne comme prévu. Passage à Xcode 4 avec le même modèle de modèles / mappage nous donne une erreur "Impossible de trouver le modèle de mappage pour la migration". Prendre la MAPC à partir du XCode 3 USR / BIN / et la copiez sur XCode 4 USR / Bin (après la sauvegarde du XCode 4) et la reconstruction dans Xcode 4 permet la migration d'aller de l'avant comme prévu.


Cela ne semble pas fonctionner pour moi, aucune autre idée quant à ce qui pourrait causer cela?


Oui, ce problème a été corrigé. Je suppose que je vais le mentionner dans ma réponse.



2
votes

Assurez-vous de configurer le modèle de données source comme votre ancienne version, ainsi que la destination comme nouvelle ... J'ai eu l'erreur ci-dessus quand celles-ci étaient en reculons.


0 commentaires