3 votes

Comment créer une base de données Realm pour une application React Native ?

Peut-être que je ne vois pas les choses de la bonne manière, mais comment créer une base de données de royaumes préremplie ? Par exemple, disons que je veux créer un dictionnaire contenant 1000 mots et définitions. L'utilisateur peut modifier les définitions depuis l'application, mais la base de données contient initialement des définitions par défaut.

Puis-je créer un fichier .realm avec les 1000 mots et les définitions et l'inclure dans mon application ?

Pour info : j'utilise Realm avec React Native et je teste actuellement en utilisant emulator -avd CordovaAVD pour lancer mon émulateur Android.

2voto

bergie3000 Points 453

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 :

  1. 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);
  2. Le chemin sera quelque chose comme /data/data/(package.name)/files/(filename).realm"nom du fichier" sera probablement "default".

  3. À partir de la ligne de commande, exécutez
    adb exec-out run-as (package.name) cat files/(filename).realm > (filename).realm

  4. Ceci copiera votre base de données Realm dans votre répertoire actuel.

Maintenant, pour utiliser cette base de données dans votre application :

  1. Créer un objet de royaume :
    let YourRealmDB = new Realm({schema: [YourSchema]});
  2. 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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X