web-dev-qa-db-fra.com

Expo SQLite Utilisez la base de données existante

Selon la documentation Expo SQLite pour React-Native, je peux initialiser un dB comme:

const db = SQLite.openDatabase('db.db');

Cela fonctionne et je peux mettre à jour la DB comme si:

  update() {
    db.transaction(tx => {
      tx.executeSql(
        `select * from items where done = ?;`,
        [this.props.done ? 1 : 0],
        (_, { rows: { _array } }) => this.setState({ items: _array })
      );
    });
  }

De ma compréhension limitée, cela crée une base de données dans l'appareil. Et puis il est manipulé en gardant tout le DB local.

J'ai une base de données avec toutes les tables nécessaires déjà configurées. Comment puis-je utiliser la base de données actuelle que j'ai déjà configurée?

Par exemple: (non correct syntaxe)

const db = SQLite.openDatabaseIShipWithApp('mypath/mydb.db');

Je ne pouvais trouver aucune documentation pour m'aider avec cela. La seule raison pour laquelle je mentionne ce qui précède est parce que j'ai déjà le dB avec les tables et les données.

Toute aide serait appréciée!

8
FabricioG

Je ne crois pas que cela soit possible en expo. Il existe un moyen d'utiliser une base de données existante si vous utilisez un projet Bare Android, qui implique de rédiger un code natif pour copier la base de données de l'actif de projet à l'emplacement standard du téléphone (/ données/etc) pour votre demande.

https://medium.com/@johann.pardanaud/ship-an-android-app-with-a-pre-populum-database-cd2b3aa3311f

J'ai toujours créé personnellement la base de données moi-même avec la table Create si elle n'existe pas depuis que SQLite vous oblige à définir le schéma avant de les interroger. Si vous avez besoin de semer la base de données, cette étape serait ensuite suivie d'étapes supplémentaires pour insérer les données requises.

Dans la plupart des cas, vous devrez également vérifier vos données de référence et la mettre à jour à partir du serveur à intervalles réguliers (cela pourrait même changer de publication de votre APK à une personne téléchargeant l'application) et ce code fonctionnerait également lorsqu'il n'y a pas de données de référence dans la base de données.

Il y a quelques services qui tentent de vous éloigner de vous (par exemple, par exemple), mais vous devrez décider si vous êtes heureux avec eux hébergeant vos données.) Je ne les ai pas utilisés, donc pas sûr de savoir comment cela fonctionne exactement mais On me dit que cela tente de résoudre les problèmes de premier type hors ligne.

N'oubliez pas que dans les futures itérations, vous devrez peut-être modifier la structure pour les futures versions (pour ajouter des champs, etc.) Vous devez donc probablement définir un code qui charge lors de la première démarrage de l'application, vérifie la version de la base de données et applique les modifications requises requises. apporter la base de données jusqu'au niveau approprié.

0
Chanoch