iMessage doesn't keep your whole message history on-device. You can scroll back and it will fetch a bit more each time, but that's it.
Is there anyway to pull back to the beginning of time into the local database? I'd like to retrieve some specific old messages from a friend who has passed away. If I could get them out I could search (I know what I am looking for) but it would involve an unfeasible amount of "pull to fetch more"
They might mean attachments too, which I count as whole message history.
Messages seems to be somewhat random about keeping/removing attachments from your devices regardless of how much storage you have free or whether you have 'Optimise Storage' off.
*note this is specifically when using Messages with iCloud
I previously kept copies of this SQLite database on hand when backing up my phone (it stores to a specific folder every time), but since encrypted backups were introduced a few iOS versions ago, I found it too much of a hassle.
If OP wants to find this file, a good search term is "3d0d7e5fb2ce288813306e4d4636395e047a3d28" which apparently is a sum of the string "HomeDomain-Library/SMS/sms.db".
One thing I miss from Android was the simplicity of getting data in and out of the phone. I could just dump everything to CSV and be done with it.
> iMessage doesn't keep your whole message history on-device
Unless you’ve changed the “message history” setting, yes, it does keep all history on-device. It’s just incredibly frustrating to access any of it because Messages.app is awful at history.
Wouldn't the tool we are commenting on solve your problem nicely or what are you missing? Have you checked out the sqlite database where they are all stored? Does the iMessage search not work for this use case?
I've been tinkering with this recently and there are conversations where the last content in the sqlite database is a month and a half old. Oddly in some cases there used to be newer content in there that had since disappeared.
If you are talking about data missing from the `text` column, for some reason it disappears after you read a message. The content is stored in a binary blob in a different column, which I parse like this: https://github.com/ReagentX/imessage-exporter/blob/c73bc4d66...
If you don't sync imessage to iCloud, I thought it quite literally only stored on device in that case, besides when it in transit to be delivered. Referencing this official apple article, messages that are waiting to be delivered to devices can sit in the message queue for up to 30 days. https://support.apple.com/guide/security/how-imessage-sends-...
iMessage doesn't keep your whole message history on-device. You can scroll back and it will fetch a bit more each time, but that's it.
Is there anyway to pull back to the beginning of time into the local database? I'd like to retrieve some specific old messages from a friend who has passed away. If I could get them out I could search (I know what I am looking for) but it would involve an unfeasible amount of "pull to fetch more"