Ich möchte mein Realm-Schema auf eine neue Version migrieren. Daher ist das Entfernen meines Primärschlüssels erforderlich.Realm primäre Schlüsselmigration
alte Schema:
class StudyState : Object
{
dynamic var name = ""
dynamic var x = ""
dynamic var y = ""
override static func primaryKey() -> String? {
return "name"
}
}
Neues Schema:
class StudyState : Object
{
dynamic var name = ""
dynamic var x = ""
dynamic var y = ""
}
Ohne Migration wird Reich nicht mit
'RLMException' Grund: ‚Migration ist erforderlich für Objekttyp 'StudyState' aufgrund folgender Fehler: - Prop Der Name "Name" ist kein Primärschlüssel mehr. "
Ich habe versucht, diese Migration Block, die auch nicht weiter:
migration.enumerate(StudyState.className()) { oldObject, newObject in
newObject?["deleted"] = false
newObject?["primaryKeyProperty"] = ""
}
'RLMException', Grund: 'Ungültige Eigenschaftsname'
Gibt es eine Möglichkeit zu entfernen der Primärschlüssel beim Migrieren des Realms zu einer neuen Schemaversion?
aber wo ist "setSchemaVersion" aus? – User9527
@ User9527 Diese Antwort ist für eine zu alte Version. In der neuesten Version können Sie 'Realm.Configuration' verwenden, um stattdessen die Schemaversion anzugeben. Siehe auch https://realm.io/docs/swift/latest/#migrations –