Я просмотрел документы на сайте Realm и не могу найти ничего, что описывает, как обрабатывать удаление свойства в процессе миграции. Я взял группу свойств, которые были достаточно похожи друг на друга, и переместил их в новый объект. Что-то вроде:
class MyObject: Object {
@objc dynamic var siteName = ""
@objc dynamic var lat = 0.0
@objc dynamic var lon = 0.0
@objc dynamic var roadNames = ""
@objc dynamic var startTime = ""
@objc dynamic var endTime = ""
@objc dynamic var comments: String = ""
@objc dynamic var complete: Bool = false
}
А потом я изменил его на:
class Site: Object {
@objc dynamic var siteName = ""
@objc dynamic var lat = 0.0
@objc dynamic var lon = 0.0
@objc dynamic var roadNames = ""
}
class MyObject: Object {
@objc dynamic var site: Site?
@objc dynamic var startTime = ""
@objc dynamic var endTime = ""
@objc dynamic var comments: String = ""
@objc dynamic var complete: Bool = false
}
И моя миграция
let block: MigrationBlock = { (migration: Migration, oldSchemaVersion) in
if oldSchemaVersion < 1 {
migration.enumerateObjects(ofType: MyObject.className()) { oldObject, newObject in
newObject!["siteName"] = oldObject!["siteName"]
newObject!["lat"] = oldObject!["lat"]
newObject!["lon"] = oldObject!["lon"]
newObject!["roadNames"] = oldObject!["roadNames"]
// Delete old properties.
}
}
}
Как моя миграция должна удалить свойства?