[SwiftUI] RealmSwiftのMigrationについて
概要
長い間見て見ぬ振りしてきたRealmSwiftのMigration処理について触れることになりました。
とてもとても長い道のりでした。
もっと早くにやっておけばよかったと後悔してます。
解決策
まずは解決策から
class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { RealmMigrator.setDefaultConfiguration() return true } }
これを<アプリの名前>App.swiftに追記します。
次にRealmMigrator.swiftを作成して
import SwiftUI import RealmSwift enum RealmMigrator { static private func migrationBlock( migration: Migration, oldSchemaVersion: UInt64 ) { if oldSchemaVersion < 1 { // 変更点とか書くところ } } static func setDefaultConfiguration() { let config = Realm.Configuration( schemaVersion: 1, migrationBlock: migrationBlock) Realm.Configuration.defaultConfiguration = config } }
と書き込みます。以上です。
ここに辿り着くまでにほんとに時間かかった...
その他解説
執筆中...
関連記事
まとめ(?)
- Migrationは早めにやっておこう
- いつの間にか消えていたAppDelegate.swift