CoreData でライトウェイトマイグレーション【Lightweight migration】
すでにアプリをインストールした状態でカラムを追加したバージョンをアップデートするとアプリ起動時にクラッシュする。
アプリがクラッシュしないように CoreData をマイグレーションする必要がある。
ライトウェイトマイグレーションは、attribute の追加、削除などを自動的に検知して CoreData をマイグレーションしてくれる機能です。
この記事を書いた人
@takasqr アプリケーション開発が大好きなエンジニア。Vue、Swift、Electrom などでアプリを作って公開している。AWS や Firebase などのクラウドサービスも好き。
やり方
Swift コード追加
詳しくは下のリンクを参照してください。
container.persistentStoreDescriptions.forEach { description in
description.setOption(true as NSNumber, forKey: NSMigratePersistentStoresAutomaticallyOption)
description.setOption(true as NSNumber, forKey: NSInferMappingModelAutomaticallyOption)
}
Xcode で作業
- xcdatamodeld ファイルを選択した状態で、
Editor
、Add Model Version...
と進む - 新しいモデルバージョンを作る
AppName 2
のような感じ AppName 2
を選択して、インスペクターエリアに表示されているModel Version
のCurrent
を新しく作ったモデルバージョンにするAppName 2
でカラム追加、モデル追加を行う
参考
Migrating your data model automatically | Apple Developer Documentation