您好我有境界的遷移,但有滿足錯誤境界版本遷移重命名屬性不存在
下面是我的情況的錯誤情景
第一
我schemeVersion 0的簡單User
模式(默認)在版本
class User: Object {
dynamic var username = ""
dynmaic var date = NSDate()
}
添加日期2 1
class User: Object {
dynamic var username = ""
dynmaic var date = NSDate()
dynamic var date2 = NSDate()
}
和遷移
Realm.Configuration.defaultConfiguration = Realm.Configuration(
schemaVersion: 1,
migrationBlock: { migration, oldSchemaVersion in
// We haven’t migrated anything yet, so oldSchemaVersion == 0
if oldSchemaVersion < 1 {
migration.enumerateObjects(ofType: RealmUser.className(), { (oldObject, newObject) in
newObject!["date2"] = oldObject!["date"] as! NSDate
})
}
}
,並在3個版本添加DATE3和版本4
class User: Object {
dynamic var username = ""
dynmaic var date = NSDate()
dynamic var date2 = NSDate()
dynamic var date4 = NSDate()
}
DATE3重命名爲日期4和遷移
Realm.Configuration.defaultConfiguration = Realm.Configuration(
schemaVersion: 4,
migrationBlock: { migration, oldSchemaVersion in
// We haven’t migrated anything yet, so oldSchemaVersion == 0
if oldSchemaVersion < 1 {
migration.enumerateObjects(ofType: RealmUser.className(), { (oldObject, newObject) in
newObject!["date2"] = oldObject!["date"] as! NSDate
})
}
if oldSchemaVersion < 2 {
migration.enumerateObjects(ofType: RealmUser.className(), { (oldObject, newObject) in
newObject!["date3"] = oldObject!["date2"] as! NSDate
})
}
if oldSchemaVersion < 3 {
migration.renameProperty(onType: User.className(), from: "date3", to: "date4")
}
}
當我sequencely遷移0 - > 1 - > 2 - > 3 - > 4工作精細
但是當遷移從0版本到版本4原因fatal error: 'try!' expression unexpectedly raised an error
"Cannot rename property 'User.date3' because it does not exist."
?
它節省我的時間謝謝:) – Cruz