2016-07-16 9 views
0

Ich muss alte, leere Modelle aus einer Realm Cocoa-Datenbank entfernen.Löschen eines Realm-Modells mit Swift

Es scheint a way to do it in Java zu sein, aber nicht in Swift. Ist das korrekt?

Wenn Sie eine Immobilie entfernen und eine Migration Realm initiieren wird die entsprechende Spalte in der Tabelle entfernen:

class Dog: Object { 
    dynamic var name = "" 
    // dynamic var age = 0 
} 

Aber, wenn Sie die Modelldefinition vollständig entfernen, die Migration tut nicht die Tabelle entfernen:

// class Dog: Object { 
// dynamic var name = "" 
// dynamic var age = 0 
// } 

Hier ist ein Screenshot von Realm Browser die leeren Tabellen zeigen, ich löschen wollen:

Antwort

0

Sie können innerhalb Ihres Migrationsblocks Migration.deleteData(_:) aufrufen, um anzugeben, dass die benannte Klasse vollständig aus Ihrer Realm-Datei entfernt werden soll.

+1

Dank! Das hat gut funktioniert. Wenn jemand anderes dies findet, vergessen Sie nicht, auch Ihre Modelldefinitionen zu entfernen. Andernfalls werden Sie nach dem Aufrufen von Migration.deleteData (_ :) immer noch mit leeren Tabellen enden. –

+1

Können Sie Ihren vollständigen Code detailliert beschreiben? Vielen Dank! – user3745888

0

Für diejenigen, die auf JavaScript arbeiten:

migration: (oldRealm, newRealm) => { 
    if (oldRealm.schemaVersion < *version*) { 
    newRealm.deleteModel('MODEL-NAME') 
    } 
}