如何从〜/ Library / Messages的Time Machine备份中提取和组合消息?


1

我有很多包含版本的备份~/Library/Messages。每个包含3个文件和一个类似于此的目录:

    XYZ:Messages user$ tree -a -L 1
    .
    ├── Attachments
    ├── chat.db
    ├── chat.db-shm
    └── chat.db-wal

    1 directory, 3 files

其中一些备份可能彼此重叠。结果是10-20个消息文件夹,没有明显的方法来访问它们。我想统一所有这些并删除重复项(如果它们存在)。

是否有任何应用程序可以执行此操作或我可以遵循的任何类型的教程?这些文件是sqlite,所以即使是数据库结构的规范也会有所帮助。

Answers:


1

其中一些备份可能彼此重叠。结果是10-20个消息文件夹,没有明显的方法来访问它们。我想统一所有这些并删除重复项(如果它们存在)。

是的,你会有很多很多重复的东西。考虑到备份的工作方式,这是预期的行为。

Time Machine执行增量备份 ; 这意味着它只备份自上次增量备份以来发生的变化。您的聊天记录保存在单个数据库文件中(在您的问题中引用),因此每次与某人聊天时,该数据库都会更新,并且每次Time Machine运行时最终都会备份。

是否有任何应用程序可以执行此操作或我可以遵循的任何类型的教程?

不,只需转到最新的备份; 所有的聊天文件都会在那里。

这些文件是sqlite,所以即使是数据库结构的规范也会有所帮助。

他们是sqlite3。如果要获取数据库结构,可以在终端中使用以下命令:

$ sqlite3 chat.db

sqlite> .schema                            # prints out the database schema
sqlite> .tables                            # lists the database tables
sqlite> PRAGMA table_info(tablename);      # lists the columns of a particular table   
sqlite> select text from message;         # raw output of all text messages

@ user3439894 - 是的......这是一个错字。
艾伦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.