TGViewer
Мобильная разработка Мобильная разработка @mobi_dev · 13.2K subscribers
Post #4766 655
Как обновлять схемы SwiftData и не ломать данные после релиза

После обновления iOS-приложение открывает существующее хранилище. Поэтому даже первую модель автор советует выпускать через VersionedSchema: она станет исходной точкой для следующих версий.

SwiftData сама переносит данные при лёгких изменениях, например при добавлении необязательного свойства. Новое обязательное поле без значения, смена типа или объединение сущностей требуют ручного преобразования через SchemaMigrationPlan и MigrationStage.

Разбор миграций SwiftData объясняет, как учитывать пользователей, которые пропускают версии приложения, и когда нужны промежуточные схемы. Проверяйте переход с реального хранилища на диске: значение по умолчанию в Swift-инициализаторе не гарантирует заполнение старых записей.
  • 👍 1
More from @mobi_dev
  1. Sep 25, 2026Как добавить свайп-действия в Android без устаревшего API В Compose Material 3 компонент S…
  2. Sep 25, 2026Как передать изображение в Foundation Models и получить Swift-структуру Мультимодальный вв…
  3. Sep 24, 2026Как изолировать ViewModel по записи навигации в Android Navigation 3 После миграции с Navi…
  4. Sep 24, 2026Как собирать диагностику iOS-приложения через MetricKit Xcode Organizer показывает сбои, з…
  5. Sep 24, 2026Как довести код ИИ-агента в iOS до TestFlight Donny Wals разбирает пайплайн, в котором аге…
  6. Sep 23, 2026Как заменить List собственным контейнером в SwiftUI Для больших однородных наборов данных…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →