Создать объект области во время миграции области
Можете ли вы создать объект области во время миграции? Я хочу извлечь часть существующего объекта области и создать новый объект с этими данными, но миграция всегда зависает. Вот мой код миграции
private class var migrationBlock: MigrationBlock {
return { migration, oldSchemaVersion in
if oldSchemaVersion < 1 {
print("Shema Version 0")
migration.enumerate(Transaction.className(), { (oldObject, newObject) -> Void in
let oldDate = oldObject!["date"] as! NSDate
let newTransactionDate = TransactionDate()
newTransactionDate.date = oldDate
try! Realm.getRealm().write { Realm.getRealm().add(newTransactionDate, update: true) }
newObject!["_date"] = newTransactionDate
})
}
}
}
1 ответ
Решение
Ты можешь использовать Migration.create(_:value:)
создать объект во время миграции.
https://realm.io/docs/swift/latest/api/Classes/Migration.html
Возвращается MigrationObject
экземпляр. Поэтому вы должны использовать подписку, чтобы присвоить значение его свойству.
let oldDate = oldObject!["date"] as! NSDate
let newTransactionDate = migration.create(TransactionDate.className())
newTransactionDate["date"] = oldDate
newObject!["_date"] = newTransactionDate