Migración de key principal del reino

Quiero migrar mi esquema de reino a una nueva versión. Por lo tanto, se necesita la eliminación de mi key principal.

Antiguo esquema:

class StudyState : Object { dynamic var name = "" dynamic var x = "" dynamic var y = "" override static func primaryKey() -> String? { return "name" } } 

Nuevo esquema:

 class StudyState : Object { dynamic var name = "" dynamic var x = "" dynamic var y = "" } 

Sin migration , el reino fallará con

'RLMException', motivo: 'Se requiere migration para el tipo de object' StudyState 'debido a los siguientes errores: – La propiedad' name 'ya no es una key primaria.'

Probé este bloque de migration , que también falló:

 migration.enumerate(StudyState.className()) { oldObject, newObject in newObject?["deleted"] = false newObject?["primaryKeyProperty"] = "" } 

'RLMException', razón: 'Nombre de propiedad no válida'

¿Hay alguna forma de eliminar la key principal al migrar el reino a una nueva versión de esquema?

No necesita hacer nada en el bloque de migration si solo elimina la anotación de key principal. Pero existe la necesidad de boost la versión del esquema porque las definiciones de esquema cambiaron.

Como abajo:

 // You have to migrate Realm BEFORE open Realm if you changed schema definitions setSchemaVersion(1, Realm.defaultPath) { (migration, oldSchemaVersion) -> Void in if oldSchemaVersion < 1 { // Nothing to do! // Realm will automatically detect new properties and removed properties // And will update the schema on disk automatically } } let realm = Realm() ...