Outils utilisateur

Outils de site


manuel:avancé:map_tools:corrupted_sqlite

Réparation de base de données SQLite corrompue


Les bases de données SQLite sur les appareils Android sont très stables par définition. Cependant, nous avons constaté que les bases de données peuvent être corrompues. Cela peut être dû à une mauvaise fermeture de la base de données ou à la suppression de l'application Locus. Le résultat est que Locus Map n'est pas en mesure d'ouvrir le fichier de base de données ou que le fichier se supprime lui-même - cela concerne à la fois les fichiers cartographiques et les bases de données de points/traces, tous sont des SQLites. Heureusement, il est parfois possible de réparer une telle base de données corrompue.

Comment

Solution rapide pour les utilisateurs de MS Win

Cette procédure concerne les 'tracks.db' fichier que vous pouvez trouver dans votre répertoire Locus Locus/données/base de données:

  1. Télécharger ce fichier .ZIP et déballez-le
  2. Copiez tracks.db dans le répertoire décompressé
  3. Courir fix_tracks.bat
  4. copier les pistes réparées.db à son emplacement d'origine (c'est-à-dire dans le dossier Locus/data/database)

Solution générale

Les étapes suivantes nécessitent de travailler avec la ligne de commande DOS (cmd).

  • Copiez le fichier de carte corrompu (ou une autre base de données sqlite) de votre appareil vers le PC
  • Téléchargez sqlite-tools à partir de http://www.sqlite.org/download.html
  • Décompressez-le et placez le fichier de base de données corrompu dans le même répertoire que sqlite3.exe
  • Démarrez "cmd" et accédez au répertoire contenant le fichier corrompu
  • Courir
> sqlite3.exe filename.db "PRAGMA integrity_check"

pour vérifier la base de données. Le résultat sera probablement un message d'erreur Erreur : le disque de la base de données est malformé.

  • Courir
>nomfichier sqlite3.exe.db ".dump" | sqlite3 new.db
  • Si vous répétez la vérification d'intégrité ci-dessus sur un fichier new.db, vous devriez obtenir le message "OK".
  • Renommez le fichier new.db avec le nom d'origine de votre fichier et copiez-le à son emplacement d'origine (c'est-à-dire copiez les pistes fixes.db ou waypoints.db dans le dossier Locus/data/database)

En cas d'échec de la commande ci-dessus, essayez une alternative

>nomfichier sqlite3.exe.db ".recover" | sqlite3 new.db

Par exemple :

Cependant, cette procédure ne réussit pas toujours. Le moyen le plus simple et le plus fiable consiste à restaurer le fichier de base de données à partir de la sauvegarde.

manuel/avancé/map_tools/corrupted_sqlite.txt · Dernière modification : 2022/08/23 08:29 par menion