Univers Apple

08
Juin
2020

Reconstruire la base de données SQLite3 d'une application

Publié par sky

A la suite d'un kernel panic, le serveur Wired du Mac en question, s'est mis en rideau. Au redémarrage, le serveur se lance bien, mais impossible de rester connecter plus de quelques secondes.

En regardant les logs, je vois cela, et les lignes défilent très très vite, avec plusieurs erreurs par seconde.

Logs de Wired Server - SQLite totalement planté 

La base de données semble complètement plantée.

Avant de ré-installer tout le serveur, j'ai tenté une réparation. Cela évite ainsi de reconfigurer tout le serveur, en particulier de refaire l'ensemble des comptes, avec leurs mots de passe.

Une opération qui s'est déroulée avec succès.

Voici la méthode utilisée, car cela peut s'appliquer à d'autres applications utilisant une base de données SQLite3. SQLite3 est une application disponible directement avec macOS, c'est d'ailleurs aussi pour cela que les application s'en servent.

Dans un terminal, j'ouvre la base de données avec l'application

sqlite3 /Users/sky/Library/Wired/database.sqlite

Je jette vite fait un petit coup d'oeil aux tables, voir si elles sont toujours là.

.tables

le résultat est encourageant

banlist         groups          posts           topic         
boards          index           servers         users         
events          index_metadata  threads         versions

Les tables sont toujours présentes.

J'exporte toutes les données de la base dans un fichier externe

.mode insert
.output wired.sql
.dump

Le fichier est écrit. Je quitte l'application.

.exit

Maintenant, je peux réouvrir SQLite3 dans une nouvelle base, en reprenant le nom de celle utilisée par Wired (en faisant bien attention de ne pas être dans le dossier qui contient la base).

sqlite3 database.sqlite

Puis je lis le contenu de mon fichier.

.read wired.sql

et je quitte.

.exit

Je n'ai plus qu'à mettre de côté la précédente base de données, et mettre en place la nouvelle.

Je n'ai plus qu'à relancer le serveur Wired, et me reconnnecter pour vérifier que cela fonctionne bien.

 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Les cookies assurent le bon fonctionnement de nos services. En continuant, vous acceptez leur utilisation sur notre site internet.
Accepter En savoir plus