Realmを使っていて、開発途中でカラムを追加したり削除したりするとアプリがクラッシュしてしまいます。
そんな時に必要なのがマイグレーションでして、今回はそのやり方を解説します。
マイグレーションのやり方
マイグレーションは、AppDelegate.swiftの didFinishLaunchingWithOptionsの中で行います。
次のように書いてください。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// マイグレーション処理
migration()
let realm = try! Realm()
return true
}
// Realmマイグレーション処理
func migration() {
// 次のバージョン(現バージョンが0なので、1をセット)
let nextSchemaVersion = 1
// マイグレーション設定
let config = Realm.Configuration(
schemaVersion: nextSchemaVersion,
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion < nextSchemaVersion) {
}
})
Realm.Configuration.defaultConfiguration = config
}
realmのschemaVersionは初回であればデフォルト値「0」が設定されているので、それより大きい数値(今回は1)を指定してあげれば、新しくデータベースを更新することできます。
created by Rinker
¥3,168
(2024/11/23 00:36:00時点 Amazon調べ-詳細)
(2024/11/23 00:36:00時点 Amazon調べ-詳細)