Je pense avoir résolu le problème et je vais donc poster ma solution au cas où quelqu'un d'autre pourrait la trouver utile.
J'ai une fonction qui va remplir une base de données Realm. Cependant, une fois que j'ai exécuté cette fonction, je veux récupérer cette base de données statique et l'utiliser au lieu de générer la base de données à chaque fois que l'application démarre. C'est ce qui a motivé mes efforts. Cependant, ces étapes seront également utiles si vous souhaitez simplement sauvegarder une base de données.
Je teste principalement en utilisant un émulateur, mais je pense que ces étapes fonctionneront si vous testez sur un appareil réel.
Pour récupérer la base de données Realm de l'émulateur :
-
Trouvez le chemin vers votre fichier realm dans le téléphone en ajoutant ceci quelque part dans votre code :
let YourRealmDB = new Realm({schema: \[YourSchema\]});
console.log('YourRealmDB path =', YourRealmDB.path);
-
Le chemin sera quelque chose comme /data/data/(package.name)/files/(filename).realm"nom du fichier" sera probablement "default".
-
À partir de la ligne de commande, exécutez
adb exec-out run-as (package.name) cat files/(filename).realm > (filename).realm
-
Ceci copiera votre base de données Realm dans votre répertoire actuel.
Maintenant, pour utiliser cette base de données dans votre application :
- Créer un objet de royaume :
let YourRealmDB = new Realm({schema: [YourSchema]});
- Définissez le chemin des objets vers votre BD :
YourRealmDB.defaultPath = 'path/to/your/db/(filename).realm';
NOTE : Si vous utilisez une base de données 'locale' comme celle-ci et que votre application effectue une opération d'écriture, elle n'écrira pas dans votre base de données locale. dans votre base de données locale. Elle écrira dans la base de données à YourRealmDB.path
. Donc si vous voulez copier ou visualiser la BD mise à jour, vous devrez exécuter adb exec-out run-as (package.name) cat files/(filename).realm > (filename).realm
à nouveau pour obtenir la version la plus récente de votre BD.
J'espère que cela vous aidera. Il m'a fallu un certain temps pour comprendre tout ça.