【Realm】カラムを追加・削除・変更した時に必要なマイグレーションのやり方

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 (2022/08/17 20:26:29時点 Amazon調べ-詳細)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA