Myslím, že úplně nerozumím tomu, co máš za problém. Pokud se ptáte, zda existuje nástroj, který vám migraci dat zautomatizuje, pak ne, žádný takový neexistuje.
Jinak je to spíše přímočaré:
-
Zpracování
onCreate
,onDowngrade
aonUpgrade
metod při implementaci vašehoSQLiteOpenHelper
třída. -
Ve vašem
onCreate
ihned po vytvoření tabulek získejte všechna data z Realmu a vložit do tabulek SQLite.
Něco jako toto:
Realm realm = Realm.getDefaultInstance();
RealmResults<MyClass> all = realm.where(MyClass.class)
.findAll();
for (MyClass instance : all) {
doInsert(instance);
}
Ve skutečnosti navrhuji, abyste se podívali na to, jak zmenšit velikost APK při používání Realm, ale je to na vás
UPRAVIT 1 Museli byste se ujistit, že nejprve migrujete data a poté smažete soubory Realm. Ačkoli to nejsou datové soubory, které dělají váš APK velkým, ale spíše skutečné knihovny, které přicházejí s Realm. Takže za tímto účelem budete bohužel muset udělat dva kroky:nejprve vydat aktualizaci, která migruje data na SQLite, a po nějaké rozumné době (například týden) můžete vydat aktualizaci, která knihovny Realm úplně vyřadí. Doufám, že to dává smysl.