IOS – reload old iMessage conversations on a new device (iOS and OS X)

iosmacosmessages

When setting up a new iOS device or installing the Messages Beta on OS X, you can log in with your iMessage account to start receiving & sending messages with iMessage.

One advantage of iMessage is that these messages are received on all your devices — meaning that as long as you have iMessage configured on a device, you can see the history of a conversation.

But as far as I can tell, you can only see messages which have been delivered after you set up your iMessage account on a device. Is there a way to load old messages which were sent/received before setting up iMessage? (I'd like to load both old messages within a current conversation/thread, and old conversations which have not recently received messages.)

Best Answer

I just transferred all my chat history by copying ~/Library/Messages from an existing (OSX 10.8) machine to a new one (OSX 10.10).

Couple of things to note:

  1. Quit Messages on both machines before you do this
  2. After copying over, delete chat.db-shm and chat.db-wal from ~/Library/Messages on the new machine
  3. Empty the Trash. I found that there was a process called 'IMDPersistenceAgent' that was holding on to the files I deleted. I killed that process ( sudo kill -9 pid in a terminal). To find out which process (and the pid) is holding on to those files I used the excellent What's Keeping Me. It found the culprit process, but I wasn't able to kill it from within it (and hence had to resort to killing from a terminal).
  4. Start Messages. Now it might seem that you did not get the history back, but you did! Try scrolling up for any existing conversations and you will find that the history has been restored. If you were to start a new conversation with a contact that is not yet visible, you will find the old conversation history is now visible.

I am happy with the above and am not too worried about the list of open conversations not being restored as long as the history itself is there.†w