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.
Ouvrir le panneau de gestion des cookies
Fermer le panneau
Ce site utilise des cookies pour assurer son bon fonctionnement. Il utilise aussi des cookies issues de services tiers permettant de proposer des fonctionnalités avancées. À tout moment, vous pouvez choisir quels services vous souhaitez activer ou refuser, afin de retirer votre consentement quant à l'utilisation des cookies.
 
Personnalisation des services
Vous êtes libre de choisir quels services vous souhaitez activer. En autorisant ces services tiers, vous acceptez le dépôt et la lecture de cookies et l'utilisation de technologies de suivi nécessaires à leur bon fonctionnement. En retirant votre consentement pour certains de ces services, certaines fonctionnalités du site peuvent ne plus fonctionner.
Navigation du site  En savoir plus
Le site écrit un cookie de session permettant son bon fonctionnement et aidant à la navigation. Il ne peut être désactivé.
Utilisation : 1 cookie, enregistre l'identifiant de la session.
Durée de vie : Le cookie est présent pendant toute la session sur le site. Il devient obsolète après 24 minutes d'inactivité.
Obligatoire
Popup Média
Afficher des vidéos depuis Yoube ou Dailymotion.
 
Tout accepter Tout refuser Gérer