J'ai une application iPhone qui utilise CoreData pour le stockage.iPhone CoreData migration de données seulement
Le magasin persistant (une base de données sqlite3) est livré avec plusieurs de ses entités remplies de données. Ces données sont utilisées pour créer divers menus et options dans l'application. Appelons ces données "données d'application".
Plusieurs autres entités sont utilisées par l'application pour stocker les données utilisateur.
Bien que le schéma change rarement, j'ai souvent besoin de mettre à jour les données d'application pour fournir de nouvelles options aux utilisateurs. J'ai un script MacRuby qui récupère les nouvelles données d'un tas de fichiers CSV et met à jour la base de données sqlite3 sur mon ordinateur de développement, mais je ne suis pas sûr de la meilleure façon de mettre à jour les applications déployées existantes avec les nouvelles données d'application (rappelez-vous, pas de changement de schéma) sans affecter les données de l'utilisateur.
Des idées?
_ Mise à jour _
Après un peu de réflexion, je commence à me orienté vers la mise en application pour télécharger un nouveau fichier sqlite3 à partir d'un serveur Web qui contient les nouvelles données. Une fois reçue, mon application va copier les données du fichier de mise à jour sqlite3 dans le fichier de base de données de l'application, en remplaçant complètement les données de l'application, mais sans toucher aux données de l'utilisateur.
Un mécanisme pour déterminer si une mise à jour a été appliquée peut utiliser un fichier texte avec un seul numéro de version de base de données que l'application téléchargera périodiquement. Si ce nombre est plus grand que le numéro de la mise à jour précédente (qui est stockée localement), la mise à jour se poursuivra, sinon elle l'ignorera.
Bonjour Futureshocked, avez-vous trouvé la réponse? Je suis également confronté au même problème. J'ai une entité appelée DefaultValues que je veux mettre à jour avec quelques nouveaux enregistrements sans toucher les données des utilisateurs présents dans d'autres entités. Je ne sais pas exactement ce que je dois faire ?? –
Je ne l'ai pas encore terminé, mais la stratégie que je prévois de suivre est de regrouper les nouvelles données dans un fichier sqlite3 (même si cela n'a pas d'importance, il pourrait s'agir d'un simple fichier json), le télécharger sur l'iPhone par l'application, puis ouvert et avoir les données copiées comme requis dans la base de données de l'application. J'espère que cela t'aides. J'ai mis en place la partie qui télécharge le fichier sqlite3 sur le téléphone, puis manque de temps :-( – futureshocked