Skip to content
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@ The easy way is to open your databases in [dbeaver](https://dbeaver.io/download/
Database > new connexion > sqlite > open : select the db file

open new file (ctrl + O) > open each script > for each script connect it to the right base > ![click N/A up in the bar](https://user-images.githubusercontent.com/43207983/167259262-9b1cc634-8c6c-4fa1-a263-654e38c99c01.png)
(Further details in each script commented at the top of the script)

Update the path to the db files in the scripts.

Execute each script (Alt + X or clic ![button](https://user-images.githubusercontent.com/43207983/167259327-9cf1e47d-486f-4908-a8d2-1b6e5b17b342.png))
Execute each script 1 at a time (Alt + X or click 3rd icon from the top![3rd button](https://user-images.githubusercontent.com/43207983/167259327-9cf1e47d-486f-4908-a8d2-1b6e5b17b342.png))

Right click on the destination database, which I name the "oldest" in the script, and disconnect it. Close dbeaver, normaly next to your dbs the file named db_wal.db should be emptied.

Expand Down
74 changes: 36 additions & 38 deletions Updates.sql
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
-- exec it connect to the newest
--

ATTACH DATABASE '/path/old/db' AS oldest;
ATTACH DATABASE '/path/old/msgstore_older.db' AS oldest;

update user_device set _id = -(_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="user_device")) where _id > 0;
update user_device set _id = -_id where _id < 0;
Expand Down Expand Up @@ -78,58 +78,56 @@ update user_device_info set user_jid_row_id = -user_jid_row_id where user_jid_r
update receipt_orphaned set receipt_recipient_jid_row_id = -(receipt_recipient_jid_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="jid")) where receipt_recipient_jid_row_id > 0;
update receipt_orphaned set receipt_recipient_jid_row_id = -receipt_recipient_jid_row_id where receipt_recipient_jid_row_id < 0;
---------------------------------------------------------------------------------------
update messages set _id = -(_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where _id > 0;
update messages set _id = -_id where _id < 0;
update audio_data set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where message_row_id > 0;
update message set _id = -(_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where _id > 0;
update message set _id = -_id where _id < 0;
update message set sort_id = -(sort_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where _id > 0;
update message set sort_id = -sort_id where _id < 0;
update audio_data set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_row_id > 0;
update audio_data set message_row_id = -message_row_id where message_row_id < 0;
update message_ftsv2_content set docid = -(docid + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where docid > 0;
update message_ftsv2_content set docid = -(docid + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where docid > 0;
update message_ftsv2_content set docid = -docid where docid < 0;
update message_ftsv2_docsize set docid = -(docid + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where docid > 0;
update message_ftsv2_docsize set docid = -(docid + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where docid > 0;
update message_ftsv2_docsize set docid = -docid where docid < 0;
update message_forwarded set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where message_row_id > 0;
update message_forwarded set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_row_id > 0;
update message_forwarded set message_row_id = -message_row_id where message_row_id < 0;
update message_streaming_sidecar set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where message_row_id > 0;
update message_streaming_sidecar set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_row_id > 0;
update message_streaming_sidecar set message_row_id = -message_row_id where message_row_id < 0;
update message_media set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where message_row_id > 0;
update message_media set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_row_id > 0;
update message_media set message_row_id = -message_row_id where message_row_id < 0;
update message_view_once_media set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where message_row_id > 0;
update message_view_once_media set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_row_id > 0;
update message_view_once_media set message_row_id = -message_row_id where message_row_id < 0;
update missed_call_logs set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where message_row_id > 0;
update missed_call_logs set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_row_id > 0;
update missed_call_logs set message_row_id = -message_row_id where message_row_id < 0;
update mms_thumbnail_metadata set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where message_row_id > 0;
update mms_thumbnail_metadata set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_row_id > 0;
update mms_thumbnail_metadata set message_row_id = -message_row_id where message_row_id < 0;
update receipt_device set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where message_row_id > 0;
update receipt_device set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_row_id > 0;
update receipt_device set message_row_id = -message_row_id where message_row_id < 0;
update receipt_user set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where message_row_id > 0;
update receipt_user set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_row_id > 0;
update receipt_user set message_row_id = -message_row_id where message_row_id < 0;
update status set message_table_id = -(message_table_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where message_table_id > 0;
update status set message_table_id = -(message_table_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_table_id > 0;
update status set message_table_id = -message_table_id where message_table_id < 0;
update status set last_read_message_table_id = -(last_read_message_table_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where last_read_message_table_id > 0;
update status set last_read_message_table_id = -(last_read_message_table_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where last_read_message_table_id > 0;
update status set last_read_message_table_id = -last_read_message_table_id where last_read_message_table_id < 0;
update status set last_read_receipt_sent_message_table_id = -(last_read_receipt_sent_message_table_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where last_read_receipt_sent_message_table_id > 0;
update status set last_read_receipt_sent_message_table_id = -(last_read_receipt_sent_message_table_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where last_read_receipt_sent_message_table_id > 0;
update status set last_read_receipt_sent_message_table_id = -last_read_receipt_sent_message_table_id where last_read_receipt_sent_message_table_id < 0;
update status set last_read_message_table_id = -(last_read_message_table_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where last_read_message_table_id > 0;
update status set last_read_message_table_id = -(last_read_message_table_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where last_read_message_table_id > 0;
update status set last_read_message_table_id = -last_read_message_table_id where last_read_message_table_id < 0;
update status set first_unread_message_table_id = -(first_unread_message_table_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where first_unread_message_table_id > 0;
update status set first_unread_message_table_id = -(first_unread_message_table_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where first_unread_message_table_id > 0;
update status set first_unread_message_table_id = -first_unread_message_table_id where first_unread_message_table_id < 0;
update status set autodownload_limit_message_table_id = -(autodownload_limit_message_table_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where autodownload_limit_message_table_id > 0;
update status set autodownload_limit_message_table_id = -(autodownload_limit_message_table_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where autodownload_limit_message_table_id > 0;
update status set autodownload_limit_message_table_id = -autodownload_limit_message_table_id where autodownload_limit_message_table_id < 0;
update messages_links set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where message_row_id > 0;
update messages_links set message_row_id = -message_row_id where message_row_id < 0;
update messages_vcards set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where message_row_id > 0;
update messages_vcards set message_row_id = -message_row_id where message_row_id < 0;
update messages_vcards_jids set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages")) where message_row_id > 0;
update messages_vcards_jids set message_row_id = -message_row_id where message_row_id < 0;
update message_link set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_row_id > 0;
update message_link set message_row_id = -message_row_id where message_row_id < 0;
update message_vcard set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_row_id > 0;
update message_vcard set message_row_id = -message_row_id where message_row_id < 0;
update message_vcard_jid set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_row_id > 0;
update message_vcard_jid set message_row_id = -message_row_id where message_row_id < 0;
-----------------------------------------------------------------------------
update messages_quotes set _id = -(_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages_quotes")) where _id > 0;
update messages_quotes set _id = -_id where _id < 0;
update messages_quotes set quoted_row_id = -(quoted_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages_quotes")) where quoted_row_id > 0;
update messages_quotes set quoted_row_id = -quoted_row_id where quoted_row_id < 0;
update messages set quoted_row_id = -(quoted_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages_quotes")) where quoted_row_id > 0;
update messages set quoted_row_id = -quoted_row_id where quoted_row_id < 0;
update messages_links set _id = -(_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages_links")) where _id > 0;
update messages_links set _id = -_id where _id < 0;
update messages_vcards set _id = -(_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages_vcards")) where _id > 0;
update messages_vcards set _id = -_id where _id < 0;
update messages_vcards_jids set _id = -(_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="messages_vcards_jids")) where _id > 0;
update messages_vcards_jids set _id = -_id where _id < 0;
update message_quoted set message_row_id = -(message_row_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message")) where message_row_id > 0;
update message_quoted set message_row_id = -message_row_id where message_row_id < 0;
update message_link set _id = -(_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message_link")) where _id > 0;
update message_link set _id = -_id where _id < 0;
update message_vcard set _id = -(_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message_vcard")) where _id > 0;
update message_vcard set _id = -_id where _id < 0;
update message_vcard_jid set _id = -(_id + (SELECT seq FROM oldest.sqlite_sequence WHERE name="message_vcard_jid")) where _id > 0;
update message_vcard_jid set _id = -_id where _id < 0;
Loading