2010-06-14 19 views
0

On pense que je remarque, c'est que je dois probablement garder toute la pile des versions du modèle intacte lors de l'expédition des mises à jour. Je ne suis pas sûr de ce qui se passe si quelqu'un a la version 1.0 avec des données remplies, puis met instantanément à jour vers la version 5.0 sans aucune des versions entre. La migration doit donc également savoir à quoi ressemblait ce tout premier modèle de données. Ou peut-être que cela ne fonctionne même pas du tout. je ne sais pasN'utilise pas la migration légère avec des dizaines de mises à jour qui vont tuer les performances?

Cependant, après quelques modifications, j'avais comme 25 modèles de données là où le dernier était la version actuelle. Donc, ce que je suppose, c'est que le coordinateur du magasin persistant aura beaucoup de travail pour parcourir ces versions et trouver des différences, étape par étape. N'est-ce pas nul? Y at-il un travail autour?

Répondre

2

Si un utilisateur passe de la version 1 à la version 5, les données de base tenteront cela en une seule fois. Core Data n'a pas de concept de «version 1» et de «version 5», il ne comprend que les modèles source et de destination. Lorsqu'un utilisateur charge votre «version 1», les données de base trouvent le modèle source dans votre ensemble. Les données de base détermineront également la destination en fonction du modèle «actuel». De là, il tente de migrer.

Par conséquent, lorsque vous créez une nouvelle version, DOIT tester chaque migration possible pour s'assurer qu'ils fonctionnent. Si elles ne fonctionnent pas avec automatique alors mettre dans un modèle de cartographie pour cette migration.

Il n'y a donc pas de problème de performances car les données de base n'effectuent qu'une seule migration.