您好我有境界的迁移,但有满足错误境界版本迁移重命名属性不存在
下面是我的情况的错误情景
第一
我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