包中包含的域不会迁移

时间:2017-08-11 12:48:32

标签: ios swift3 realm realm-migration

我已经创建了一个Realm数据库,其中包含我目前需要的数据,但我需要为实体添加两个属性。 因此,我刚刚将这两个属性添加到我的实体中。我预计会因为正在进行的迁移而崩溃,所以我创建了一个额外的迁移。现在,我所做的这些更改并没有显示在我的文件系统上的Realm数据库中。

我用于迁移的代码如下:

func migrate() {
    let defaultPath = Realm.Configuration.defaultConfiguration.fileURL!
    let realmPath = Bundle.main.url(forResource: "compactedNulTien", withExtension: "realm")

    if let bundledRealm = realmPath {
      do {
        try FileManager.default.removeItem(at: defaultPath)
        try FileManager.default.copyItem(at: bundledRealm, to: defaultPath)
      } catch {}
    }

    let config = Realm.Configuration(schemaVersion: 4, migrationBlock: { migration, oldSchema in
      if oldSchema < 1 {
        migration.enumerateObjects(ofType: PointOfInterest.className(), { (old, new) in
          new!["index"] = 0
        })
      } else if oldSchema < 2 {
        migration.enumerateObjects(ofType: PointOfInterest.className(), { (old, new) in
          new!["place"] = ""
        })
      } else if oldSchema < 3 {
        migration.enumerateObjects(ofType: PointOfInterest.className(), { (old, new) in
          new!["contentImage"] = ""
          new!["contentExtension"] = ""
        })
      }
    })
    Realm.Configuration.defaultConfiguration = config

    do {
      realm = try Realm()
    } catch(let error) {
      Crashlytics().recordError(error)
    }

}

这就是我在项目中拥有realm文件的方式,所以我希望能够升级一个。如何在本地域数据库中获取新属性,以便填写它们?

Realm situation

0 个答案:

没有答案