SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Ist es möglich, von Realm zu Sqlite zu migrieren?

Ich glaube ich verstehe nicht ganz was dein Problem ist. Wenn Sie fragen, ob es ein Tool gibt, das die Datenmigration für Sie automatisiert, dann nein, es gibt kein solches Tool.

Ansonsten ist es ziemlich einfach:

  1. Behandeln Sie onCreate , onDowngrade und onUpgrade Methoden in der Implementierung Ihres SQLiteOpenHelper Klasse.

  2. In Ihrem onCreate -Methode erhalten Sie direkt nach dem Erstellen von Tabellen alle Ihre Daten von Realm und in SQLite-Tabellen einfügen.

Etwa so:

Realm realm = Realm.getDefaultInstance();
RealmResults<MyClass> all = realm.where(MyClass.class)
                                 .findAll();
for (MyClass instance : all) {
    doInsert(instance);
}

Ich schlage eigentlich vor, dass Sie prüfen, wie Sie die APK-Größe reduzieren können, während Sie Realm verwenden, aber es liegt an Ihnen

BEARBEITEN 1 Sie müssten sicherstellen, dass Sie zuerst die Daten migrieren und dann Realm-Dateien löschen. Obwohl es nicht die Datendateien sind, die Ihr APK groß machen, sondern die eigentlichen Bibliotheken, die mit Realm geliefert werden. Dafür müssen Sie leider zwei Schritte unternehmen:Zuerst ein Release-Update, das die Daten nach SQLite migriert, und nach einer angemessenen Zeit (z. B. einer Woche) können Sie ein Update veröffentlichen, das Realm-Bibliotheken vollständig entfernt. Hoffe es macht Sinn.