Nach diesem Stack-Überlauf greenDao Schema UpgradeUpgrade existieren Tabelle greendao android Studio
Der Typ "DiscDev" seine eigene Frage beantworten, aber ich habe eine Frage, auf die ONUPGRADE Verfahren dieser folgenden Code:
if(oldVersion == 3 && newVersion == 4){
boolean ifNotExists = false;
//Leave old tables alone and only create ones that didn't exist
//in the previous schema
NewTable1Dao.createTable(db, ifNotExists);
NewTable2Dao.createTable(db, ifNotExists);
NewTable3Dao.createTable(db, ifNotExists);
NewTable4Dao.createTable(db, ifNotExists);
} else {
dropAllTables(db, true);
onCreate(db);
}
die Anzahl der alten Version und neue Version woher wusste er die alte Version ist 3 und neue Version ist 4? Und warum muss es statt der Deklaration der konstanten Zahl auch harten Code geben?
Es ist nicht die beste Antwort. denn wenn ich nur die aktuelle Version aktualisiere, wird die gesamte Datenbank zerstört, zum Beispiel Lieblingsdaten. (Alle Tabellen löschen) –
Was Sie im onUpgrade tun, liegt bei Ihnen, Sie müssen nichts fallen lassen. Sie können die Migration des Schemas von einer Version zur nächsten durchführen. –
weil es vom daogenerator erzeugt wird. Wenn Sie eine neue Entität hinzufügen, wird die Tabelle gelöscht. Wenn Sie zum Beispiel 1 APK erstellt haben und versuchen, etwas als Ihren Favoriten zu markieren, fügen Sie diesen Artikel in Ihre Favoritenliste ein. Versuchen Sie als Nächstes, eine neue Tabelle oder eine neue Entität in Ihre DB einzufügen und sie dann zu generieren und zu installieren, ohne die alte Version durch Herunterladen der APK zu deinstallieren. Es wird nicht die App abstürzen, aber es wird auch alle Ihre Lieblingsliste löschen. Um das zu verhindern, überprüfe meine Antwort. Es wird nichts gelöscht, nur neue Entitäten hinzufügen, die Sie neu hinzugefügt haben. –