我已经创建了一个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文件的方式,所以我希望能够升级一个。如何在本地域数据库中获取新属性,以便填写它们?