2011-06-14 6 views
1

J'ai quelques problèmes avec la migration de données de base. J'ai 3 versions de mon application 1.0, 1.1, 1.2. Pour les deux premières versions (1.0 et 1.1), j'ai le même modèle de données, mais pour la troisième version (1.2) j'ai fait quelques changements dans mon modèle de données. Maintenant, je reçois problème incompatible à la version 1.2 de mon application (bien que son un poids léger change). Je pense que j'ai manqué la version du modèle de données à la version 1.1 de mon application, comme il n'y a pas de changement dans le modèle de données pour 1.0 et 1.1, je n'ai pas créé une autre version du modèle de données. Nous avons besoin de créer une version de modèle de données pour la nouvelle version de l'application, même s'il n'y a pas de changement dans le modèle de données entre les versions.migration de données de base

désolé si ma requête est trop dum ... s'il vous plaît suggérer ..

Répondre

1

Non, vous n'avez pas besoin d'avoir une version de modèle de données pour chaque version de l'application. Juste pour être sûr: quand vous êtes passés de 1.1 à 1.2, avez-vous créé une nouvelle version du modèle de données? Ou avez-vous simplement modifié le modèle de données existant? Pour que les migrations (légères) fonctionnent, vous devez avoir différentes versions du modèle de données. vous ne devez PAS simplement modifier le modèle existant.

De même, vous avez écrit le code pour effectuer les migrations automatiques légères, n'est-ce pas?

+0

oui j'ai le code exécuté pour l'appel automatique des migrations légères. J'ai créé un nouveau modèle de données pour la version 1.2 non édité le plus tôt. merci pour la réponse – dev4u

+0

+1. Spot sur. Voici le lien doc, tout sur le Core Data Versioning. Épelle tout. http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/vmVersioning.html –

+0

@ dev4u pouvez-vous ajouter le code pour effectuer la migration à votre question s'il vous plaît? Il peut également être utile d'afficher le message d'erreur exact que vous recevez. –

1

Si vous souhaitez modifier le modèle tout en conservant la possibilité d'ouvrir des magasins créés à l'aide d'une version antérieure du modèle, vous devez conserver la version précédente du modèle (en tant que version dans un modèle versionné). Core Data ne peut pas ouvrir un magasin pour lequel il n'a pas de modèle compatible. Ainsi, si vous voulez changer le modèle mais aussi conserver la possibilité d'ouvrir des magasins existants, vous devez:

  1. Assurez-vous que vous avez un modèle si vous ne versionné pas, faites le modèle actuel en versionnée modèle.
  2. Avant de modifier le schéma, créez une nouvelle version du modèle actuel.
  3. Modifiez la nouvelle version actuelle du modèle en laissant l'ancienne version inchangée.

S'il vous plaît consulter le link pour la procédure étape par étape de versioning

Questions connexes