Восстановить историю OS X iMessages из chat.db

Я сохранил копию всего внутри ~/Library/Messages/, которая включала папку с именем Attachments, заполненную кучей подкаталогов, содержащих все мои файлы, когда-либо прикрепленные к сообщению (изображения, документы, фильмы и т. д.), и три (3) файла с именами:

  1. chat.db (размер файла около 20 МБ),
  2. chat.db-shm (33 КБ) и
  3. chat.db-wal (565 KB).

Я открыл большой файл chat.db, и он содержит все мои сообщения в базе данных SQLite. Я знаю, что этот файл содержит всю информацию, необходимую для восстановления моей истории iMessage, я просто не знаю, как убедить iMessages.app сделать это.

Я занимаюсь этим уже около 60 минут, пробуя несколько разных вещей (я не буду перечислять каждую из них).

Должен быть способ восстановить мои сообщения из этих файлов, которые я сохранил.


person nodebase    schedule 26.11.2014    source источник
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что он должен быть на apple.stackexchange.com   -  person balupton    schedule 10.09.2016


Ответы (2)


Помучавшись над ним 3 дня, выяснил следующее:

Все эти 3 файла содержат индекс того, что у вас есть в архивах. Таким образом, удаление поврежденных файлов и/или просто восстановление резервной копии этих трех файлов должно было сделать это. Но это не так. Я пытался перезапустить приложение «Сообщения» тысячу раз после замены этих файлов, но безрезультатно. Пока я не решил запустить lsof, чтобы посмотреть, что на самом деле использует chat.db. К моему удивлению, это было не приложение "Сообщения":

[none-none][18:42:24] vlazarenko@alluminium (~/Library/Messages)$ lsof -n | grep chat.db
IMDPersis 1655 vlazarenko  txt       REG                1,3      32768 107632436 /Users/vlazarenko/Library/Messages/chat.db-shm
IMDPersis 1655 vlazarenko    4u      REG                1,3     309032 107632435 /Users/vlazarenko/Library/Messages/chat.db-wal
IMDPersis 1655 vlazarenko    5u      REG                1,3       4096 107632432 /Users/vlazarenko/Library/Messages/chat.db
IMDPersis 1655 vlazarenko    6u      REG                1,3      32768 107632436 /Users/vlazarenko/Library/Messages/chat.db-shm

Как видите, это процесс с именем IMDPersissomething.. Ищем его:

[none-none][18:57:10] vlazarenko@alluminium (~/Library/Messages)$ ps -ef | grep IMDPersis
  501  1655     1   0  6:48PM ??         0:00.11 /System/Library/PrivateFrameworks/IMDPersistence.framework/XPCServices/IMDPersistenceAgent.xpc/Contents/MacOS/IMDPersistenceAgent

А-ха! момент. Выход из Messages, замена файлов, выполнение kill с PID IMDPersistenceAgent, а затем запуск Messages вернули мне мою историю в кратчайшие сроки.

Решил поделиться, хотя это старая тема.

person favoretti    schedule 18.05.2017

На дискуссионном форуме Apple есть полезная информация.

По сути, просто нужно переместить резервную копию папки ~Library/Messages, чтобы заменить новую пустую папку ~Library/Messages.

Возможно, файлы chat.db, chat.db-shm и chat.db-wal связаны друг с другом ключами и т. д., поэтому iMessages не принимает изменения.

https://discussions.apple.com/thread/5378830

person michael    schedule 23.12.2014
comment
Я пробовал около 10 различных решений, и все они не дали никаких результатов. На самом деле, попробовав в последний раз, я сдался... Я начал накапливать свои текущие сообщения, и через несколько дней я перезапустил свою систему, и когда она снова загрузилась, мои последние сообщения исчезли, мне пришлось начать все сначала! - person nodebase; 23.12.2014
comment
Я просто переместил всю папку, и, похоже, у меня все работает нормально. Я следовал рекомендуемым процедурам, т.е. перезагрузитесь перед открытием iMessages и т. д. - person michael; 13.01.2015