Benim bölge şemasını yeni sürüme taşımak istiyorum. Bunun için birincil anahtarımın kaldırılması gerekiyor.Realm birincil anahtar geçişi
Eski şema:
class StudyState : Object
{
dynamic var name = ""
dynamic var x = ""
dynamic var y = ""
override static func primaryKey() -> String? {
return "name"
}
}
Yeni şema:
class StudyState : Object
{
dynamic var name = ""
dynamic var x = ""
dynamic var y = ""
}
göç olmadan, bölge
ben de başarısız bu göç bloğu, denedik:'RLMException', nedeni ile başarısız olur: 'Göç için gereklidir Aşağıdaki hatalardan dolayı 'StudyState' nesne türü: - Prop erty 'name' artık birincil anahtar değil.
migration.enumerate(StudyState.className()) { oldObject, newObject in
newObject?["deleted"] = false
newObject?["primaryKeyProperty"] = ""
}
'RLMException', nedeni: 'Geçersiz özellik adı'
kaldırmak için bir yol var mı Yeni bir şema sürümüne geçiş yaparken birincil anahtar mı?
ama burada "setSchemaVersion" dan mı? – User9527
@ User9527 Bu cevap çok eski versiyon içindir. En son sürümde, bunun yerine şema sürümünü belirtmek için 'Realm.Configuration' kullanabilirsiniz. Ayrıca bkz. Https://realm.io/docs/swift/latest/#migrations –