sql >> Base de Datos >  >> RDS >> SQLite

¿Es posible migrar de Realm a Sqlite?

Creo que no entiendo completamente cuál es tu problema. Si pregunta si existe una herramienta que automatice la migración de datos, entonces no, no existe tal herramienta.

De lo contrario, es bastante sencillo:

  1. Manejar onCreate , onDowngrade y onUpgrade métodos en la implementación de su SQLiteOpenHelper clase.

  2. En tu onCreate método, justo después de crear tablas, obtenga todos sus datos de Realm e insertar en las tablas de SQLite.

Algo como esto:

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

De hecho, te sugiero que investigues cómo reducir el tamaño de APK mientras usas Realm, pero depende de ti

EDITAR 1 Debería asegurarse de migrar los datos primero y luego eliminar los archivos de Realm. Aunque no son los archivos de datos los que hacen que su APK sea grande, sino las bibliotecas reales que vienen con Realm. Desafortunadamente, para esto, tendrá que seguir dos pasos:primero, lanzar una actualización que migre los datos a SQLite, y después de un tiempo razonable (como una semana), puede lanzar una actualización que elimine completamente las bibliotecas de Realm. Espero que tenga sentido.