J'ai apporté beaucoup de modifications à mon modèle de données de base. Dans le passé, nous avons utilisé la migration automatique simple. Cependant, cela échouera cette fois. Comme je ne me soucie pas vraiment de la migration des données, je veux juste supprimer le magasin persistant si la migration automatique échoue et le réinstaller. Est-ce une façon valable d'y aller? Toute chose que je dois faire attention? Cela pourrait-il faire rejeter mon application?Ignorer la migration des données de base
Répondre
Il y a quelques problèmes avec cela, et vous devez faire attention. This answer avait quelques bons conseils de la documentation de NSManagedObjectContext
Un contexte a toujours un coordonnateur du magasin persistant « parent » qui fournit le modèle et distribue les requêtes aux différents persistants magasins contenant les données. Sans un coordonnateur, un contexte n'est pas entièrement fonctionnel. Le coordinateur du contexte fournit le modèle objet géré et gère la persistance. Tous les objets extraits d'un magasin externe sont enregistrés dans un contexte avec un identificateur global (une instance de NSManagedObjectID) utilisé pour identifier de façon unique chaque objet dans le magasin externe.
Face à une situation similaire dans l'une de nos applications, je choisi de faire un nouveau magasin persistant et désapprouver l'ancien parce que notre ancien magasin avait été foiré sur plusieurs de nos appareils par une migration mauvaise précédente . Il a fini par être une transition plus désordonnée que je l'avais espéré, mais cela a fonctionné.
Les problèmes avec votre plan ne sont pas insurmontables, je recommande juste la prudence. J'ai aimé le conseil de Giao d'utiliser la réinitialisation de NSManagedObjectContext. Lors de la suppression et de la reconstruction, le coordinateur de magasin persistant peut être confus. Je m'inquiète parce qu'Apple semble faire tellement de choses dans les coulisses. Je m'inquiète aussi car il semble que les données de base se comportent différemment sur les applications publiées que sur nos versions de débogage, en particulier dans le processus de mise à niveau.
Je pense que vous êtes intelligent en reconnaissant que votre automigrate va avoir des problèmes, et que vous êtes à la recherche d'un autre chemin. Dans un passé récent, j'ai vu un groupe qui a vraiment dû se démener pendant un mois pour faire face à une migration de données ayant échoué dans leur application.
- 1. Migration de la base de données SQL
- 2. migration de données de base
- 3. Migration de données avec données de base
- 4. Mémoire insuffisante lors de la migration des données de base
- 5. Vérification de la migration des données de base légères
- 6. Migration des données de base et gestion des versions
- 7. Données de base: post-migration, code de migration supplémentaire
- 8. Migration de base de données MySQL UTF8
- 9. La migration de la base de données de l'iPhone expire
- 10. Rails Migration de base de données
- 11. iPhone - migration de données de base
- 12. données de base de migration légère
- 13. Migration de base de données en C#
- 14. Modification de la base de données de non-migration
- 15. L'unité de base de données doit ignorer l'ordre des lignes
- 16. Rails/postgresql Migration des données de la base de données vers la base de données nouvellement créée
- 17. Yii Migration de base de données
- 18. Comment supprimer des données de base après une migration légère
- 19. Impossible d'insérer des données dans la base de données lors de la migration?
- 20. Migration légère des données de base - Modèles à fusion nulle
- 21. Migration des données de base: méthodes dans NSEntityMigrationPolicy non appelées.
- 22. Migration SSIS - Extraction d'ID de la base de données distante?
- 23. Code de migration spécifique à la base de données
- 24. Migration de la base de données Lotus notes vers Db2
- 25. Comment faire la migration de base de données Rails3 + datamapper
- 26. Migration de la base de données vers un nouveau serveur
- 27. Migration de la base de données Liferay A HSQL
- 28. Migration de données sur différents schémas de base de données
- 29. Migration de la base de données Wordpress (MySQL) vers BigQuery
- 30. Migration de données vs projet de base de données VS2010
Pourriez-vous donner plus d'informations sur les problèmes de mon approche? – kukudas
a modifié ma réponse ci-dessus – HalR
@HalR: La question/réponse à laquelle vous avez lié consiste à vider un magasin persistant qui a déjà été ouvert. J'ai l'impression que la situation ici est beaucoup plus simple: Si 'addPersistentStoreWithType' échoue en raison de problèmes de migration, vous pouvez simplement supprimer le fichier de stockage et appeler' addPersistentStoreWithType' à nouveau. –