This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| how_to:repairing_corrupted_database [2022/08/01 17:30] – [Repairing corrupted database] paul | how_to:repairing_corrupted_database [2024/01/15 11:35] (current) – paul | ||
|---|---|---|---|
| Line 65: | Line 65: | ||
| badid INT; | badid INT; | ||
| begin | begin | ||
| + | DROP TABLE IF EXISTS badids; | ||
| + | CREATE TEMP TABLE badids (msgdataid BIGINT); | ||
| FOR badid IN SELECT msgdataid FROM messages.msgdata ORDER BY msgdataid LOOP | FOR badid IN SELECT msgdataid FROM messages.msgdata ORDER BY msgdataid LOOP | ||
| curid = curid + 1; | curid = curid + 1; | ||
| Line 77: | Line 79: | ||
| exception | exception | ||
| when others then | when others then | ||
| + | INSERT INTO badids (msgdataid) VALUES(badid); | ||
| raise notice 'data for message % is corrupt', | raise notice 'data for message % is corrupt', | ||
| continue; | continue; | ||
| Line 86: | Line 89: | ||
| This will read all the messages from the database, and tell you which message(s) it encountered an error with | This will read all the messages from the database, and tell you which message(s) it encountered an error with | ||
| + | |||
| + | However, sometimes it won't find all problem messages, so it is a good idea to run it again after fixing any problems, until this script doesn' | ||
| + | |||
| + | This script stores the bad message IDs in a temporary table called ' | ||
| ===Getting message summary info=== | ===Getting message summary info=== | ||