Desidero migrare lo schema del mio reamm in una nuova versione. Pertanto è necessaria la rimozione della mia chiave primaria.Migrazione della chiave primaria di realm
vecchio schema:
class StudyState : Object
{
dynamic var name = ""
dynamic var x = ""
dynamic var y = ""
override static func primaryKey() -> String? {
return "name"
}
}
Nuovo schema:
class StudyState : Object
{
dynamic var name = ""
dynamic var x = ""
dynamic var y = ""
}
Senza migrazione, regno fallirà con
'RLMException', la ragione: 'La migrazione è necessario per tipo di oggetto 'StudyState' a causa dei seguenti errori: - Prop 'nome' erty non è più una chiave primaria. '
Ho provato questo blocco migrazione, che non è riuscito troppo:
migration.enumerate(StudyState.className()) { oldObject, newObject in
newObject?["deleted"] = false
newObject?["primaryKeyProperty"] = ""
}
'RLMException', la ragione: 'nome di proprietà non valido'
C'è un modo per rimuovere la chiave primaria quando si trasferisce l'ambito in una nuova versione dello schema?
ma dov'è "setSchemaVersion" da? – User9527
@ User9527 Questa risposta è per la versione troppo vecchia. Nell'ultima versione, è possibile utilizzare 'Realm.Configuration' per specificare la versione dello schema. Vedi anche https://realm.io/docs/swift/latest/#migrations –