Миграция Core Data — это процесс обновления твоего persistent store при изменении data model. Существует две основные стратегии: lightweight и heavyweight миграция.
Это самый простой и предпочтительный подход для незначительных изменений схемы, таких как:
Core Data обрабатывает это автоматически, выводя соответствие между старой и новой версиями модели. Включи это, передав следующие опции при настройке твоего стека:
NSMigratePersistentStoresAutomaticallyOption: true
NSInferMappingModelAutomaticallyOption: true
Используй это для сложных структурных изменений, которые Core Data не может вывести автоматически, таких как:
Ты вручную создаёшь mapping model (.xcmappingmodel) в Xcode и, при необходимости, реализуешь подклассы NSEntityMigrationPolicy, чтобы определить произвольную логику трансформации в коде.
Всегда версионируй свою Core Data модель перед любыми изменениями:
Всегда тщательно тестируй миграции перед выпуском:
Отдавай предпочтение lightweight миграции по возможности — ради простоты и производительности. Оставляй heavyweight миграцию для случаев, когда изменения схемы слишком сложны для автоматического вывода, и всегда версионируй свою модель пошагово, чтобы миграции оставались управляемыми.
Lightweight migration в Core Data автоматически выводит mappings между старой и новой версией модели, когда ты включаешь NSMigratePersistentStoresAutomaticallyOption и NSInferMappingModelAutomaticallyOption, что делает её подходящей для простых изменений схемы, таких как добавление или удаление атрибутов.
Новый — ещё не проверен сообществом
Вы