Привет У меня есть миграции Realm, но имеют ошибку встретитьсяRealm версия Migration переименования собственности не существовало
ниже моей ситуации ошибка сценария
первый
У меня есть простой User
Модель schemeVersion 0 (по умолчанию)
class User: Object {
dynamic var username = ""
dynmaic var date = NSDate()
}
добавить date2 в версии 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
})
}
}
и добавить date3 в версии 3 и переименовать date3 на сегодняшний день 4 в версии 4
class User: Object {
dynamic var username = ""
dynmaic var date = NSDate()
dynamic var date2 = NSDate()
dynamic var date4 = NSDate()
}
и мигрировать
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."
в этом случае, как я могу мигрировать 0 ~ 3 версии 4 не выше, не существует Exeption?
это спасет мои времена Спасибо :) – Cruz