Свойство Swift Realm " * " добавлено в последнюю миграцию объектной модели
Я добавил новый атрибут массива в RLMObject и
public class Student: RLMObject {
dynamic var id = 0
dynamic var name = ""
dynamic var resultList = RLMArray(objectClassName:Result.className())
}
public class Result: RLMObject {
}
журнал ошибки:
миграция требуется для типа объекта 'Student' из-за следующего ошибки: - Свойство "resultList" было добавлено к последней объектной модели.
попытка не удалась:
let configuration:RLMRealmConfiguration = RLMRealmConfiguration.defaultConfiguration()
migration.enumerateObjects(Student.className()) { oldObject, newObject in
newObject!["resultList"] = RLMArray(objectClassName: Result.className())
}
EDIT:
let configuration:RLMRealmConfiguration = RLMRealmConfiguration.defaultConfiguration()
print("Realm db current version: (configuration.schemaVersion)")
configuration.schemaVersion = 1
configuration.migrationBlock = {(migration:RLMMigration, oldSchemaVersion: UInt64) in
print("Realm db migration start")
if oldSchemaVersion < 1 {
print("Schema version: 1 - Rename fields")
migration.enumerateObjects(Student.className()) { oldObject, newObject in
newObject!["creationDate"] = oldObject!["createdAt"]
newObject!["modifiedDate"] = oldObject!["updatedAt"]
}
}
print("Realm db migration finish")
}
RLMRealmConfiguration.setDefaultConfiguration(configuration)
let realm = RLMRealm.defaultRealm()
устранение:
обновите свою версию до +1
configuration.schemaVersion += 1
1 ответов
вы должны увеличить свой schemaVersion
и предоставить migrationBlock
на RLMRealmConfiguration
. Там вы можете перенести таблицы. Но вам это не нужно в вашем конкретном случае здесь. Добавление свойств может обрабатываться автоматически. Тебе все равно понадобится пустой блок.
let config = RLMRealmConfiguration.defaultConfiguration()
config.schemaVersion = 1
config.migrationBlock = { (migration, oldSchemaVersion) in
// nothing to do
}
RLMRealmConfiguration.setDefaultConfiguration(config)