1 votes

Comment extraire et combiner les messages à partir des sauvegardes Time Machine de ~/Library/Messages?

J'ai de nombreuses sauvegardes qui contiennent des versions de ~/Bibliothèque/Messages. Chacune contient 3 fichiers et un répertoire similaire à ceci :

    XYZ:Messages utilisateur$ tree -a -L 1
    .
     Attachments
     chat.db
     chat.db-shm
     chat.db-wal

    1 répertoire, 3 fichiers

Certaines de ces sauvegardes peuvent se chevaucher. Le résultat est de 10 à 20 dossiers de messages sans moyen évident d'y accéder. J'aimerais les unifier tous et supprimer les doublons s'ils existent.

Y a-t-il des applications qui font cela ou un type de tutoriel que je pourrais suivre ? Les fichiers sont en sqlite donc même une spécification de la structure de la base de données serait utile.

1voto

Douglas Points 10417

Certains de ces sauvegardes peuvent se chevaucher. Le résultat est 10-20 dossiers de messages sans moyen évident d'y accéder. J'aimerais les unifier et supprimer les doublons s'ils existent.

Oui, vous allez avoir de nombreux doublons. C'est un comportement attendu étant donné la façon dont fonctionnent les sauvegardes.

Time Machine effectue une sauvegarde incrémentielle; ce qui signifie qu'il ne sauvegarde que ce qui a changé depuis la dernière sauvegarde incrémentielle. Vos chats sont stockés dans un seul fichier de base de données (mentionné dans votre question), donc chaque fois que vous chattez avec quelqu'un, cette base de données est mise à jour et finit par être sauvegardée à chaque fois que Time Machine s'exécute.

Y a-t-il des applications qui font cela ou un type de tutoriel que je pourrais suivre?

Non. Allez simplement à la sauvegarde la plus récente; tous les fichiers de chat seront là.

Les fichiers sont sqlite donc même une spécification de la structure de la base de données serait utile.

Ils sont en sqlite3. Si vous voulez obtenir la structure de la base de données, vous pouvez utiliser les commandes suivantes dans Terminal :

$ sqlite3 chat.db

sqlite> .schema                           # affiche le schéma de la base de données
sqlite> .tables                           # liste des tables de la base de données
sqlite> PRAGMA table_info(nomdelatable);  # liste des colonnes d'une table particulière
sqlite> select texte from message;       # sortie brute de tous les messages texte

0 votes

@user3439894 - oui...c'était une faute de frappe.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X