I have looked over the docs on Realm's site and can't find anything that describes how to handle removing a property in a migration. I took a group of properties that were similar enough to each other and moved them to a new object. Something like:
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
}
And then I changed it to:
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
}
And my migration is
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.
}
}
}
How should my migration delete properties?