J'ai une application qui utilise Core Data sur SQLite, Maintenant, j'ai une mise à jour qui a des changements de structure DB disent l'ajout d'une nouvelle tableapplication iPhone mise à jour (à l'aide des données de base sur SQLite)
Je sais que lorsqu'un application se mettre à jour, il met à jour le binaire de l'application seulement, rien sur le répertoire du document sera changé.
Lorsque l'application est mise à jour et launchs à la première fois et exécuter
[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
Il trouvera la différence entre le modèle de données et la structure DB SQLite et lancera une exception et quitter.
Erreur: « Le modèle utilisé pour ouvrir le magasin est incompatible avec celui utilisé pour créer le magasin »
Alors, quelqu'un peut-il ici me donner une idée comment mettre à jour une application quand il y a un changement de la structure DB ?
Je pense que nous pouvons exécuter un script DB pour créer cette nouvelle table quand elle lance la mise à jour pour la première fois. Mais s'il y a d'autres changements comme changer le type de certains champs ou supprimer certains champs, et que nous devons migrer les anciennes données, c'est vraiment un casse-tête. Dans ce cas, la seule façon de faire est de créer une nouvelle application?
Est-ce que quelqu'un a essayé quelque chose de similaire?
Merci de m'avoir orienté dans la bonne direction, puisque j'ai des changements très complexes sur la nouvelle version que j'ai fait migrer, ça ne vaut pas la peine parce que seulement quelques copys ont été vendus et je l'ai retiré de la vente sur App Store. – owen