SQLite
 sql >> Base de données >  >> RDS >> SQLite

Est-il possible de migrer de Realm vers Sqlite ?

Je ne pense pas avoir bien compris quel est ton problème. Si vous demandez s'il existe un outil qui automatisera la migration des données pour vous, alors non, un tel outil n'existe pas.

Sinon, c'est plutôt simple :

  1. Gérer onCreate , onDowngrade et onUpgrade méthodes dans l'implémentation de votre SQLiteOpenHelper classe.

  2. Dans votre onCreate méthode, juste après avoir créé des tables, obtenez toutes vos données de Realm et insérer dans les tables SQLite.

Quelque chose comme ça :

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

En fait, je suggère que vous cherchiez à réduire la taille de l'APK tout en utilisant Realm, mais c'est à vous de décider

MODIFICATION 1 Vous devez vous assurer que vous migrez d'abord les données, puis supprimez les fichiers Realm. Bien que ce ne soient pas les fichiers de données qui font la taille de votre APK, mais plutôt les bibliothèques réelles fournies avec Realm. Donc, pour cela, vous devrez malheureusement suivre deux étapes :la première mise à jour de la version qui migre les données vers SQLite, et après un délai raisonnable (comme une semaine), vous pouvez publier la mise à jour qui supprime complètement les bibliothèques Realm. J'espère que cela a du sens.