Realm Swiftのマイグレーション方法

意外と簡単でした!
バージョンは2.0.3です。

Realmは自動的に新しく追加されたプロパティと、削除されたプロパティを認識します。
そしてディスク上のスキーマを自動的にアップデートします。

とあるので、プロパティの消去と追加だけなら以下だけでokです。
schemaVersionというのはデフォルトでは0が入っているので今回は1を指定します。

let config = Realm.Configuration(
  schemaVersion: 1,
  migrationBlock: { migration, oldSchemaVersion in
    if (oldSchemaVersion < 1) {
    }
  })
Realm.Configuration.defaultConfiguration = config
let realm = try! Realm()


古いプロパティのデータを新しいプロパティに入れたい場合はこんな感じで書きます。

Realm.Configuration.defaultConfiguration = Realm.Configuration(
  schemaVersion: 1,
  migrationBlock: { migration, oldSchemaVersion in
    if (oldSchemaVersion < 1) {
      migration.enumerate(Person.className()) { oldObject, newObject in
        let firstName = oldObject!["firstName"] as! String
        let lastName = oldObject!["lastName"] as! String
        newObject!["fullName"] = "\(firstName) \(lastName)"
      }
    }
  })
Realm.Configuration.defaultConfiguration = config
let realm = try! Realm()


そして、マイグレーションが終わればRealmのconfigurationで
先ほど指定したスキーマのバージョンをしてあげれば正常に動くはずです。

Realm.Configuration(
            fileURL: url,
            readOnly: false,
            schemaVersion:1)