I was trying to do a svn cleanup
because I can't commit the changes in my working copy, and I got the following error:
sqllite: database disk image is malformed
What can I do right now?
If you find the 'SQLite Database Disk Image is malformed' error, export your database into an SQL file. To export the data, click the File tab followed by Export>>Database to SQL file. The Export SQL dialog box appears on the screen; select the objects you want to export and define the other options.
You may see the "database disk image is malformed" error in TekRADIUS log. This could happen during unplanned shutdown or reboot. The error indicates that one or more of the sqlite3 databases may have become corrupted. You need to have sqlite3.exe to diagnose and fix the problem.
First, open command
/terminal
at repository root (folder which has .svn
as child folder):
cd /path/to/repository
Download sqlite3
and put executable sqlite3
at root of folder.
You do an integrity check on the sqlite database that keeps track of the repository (/path/to/repository/.svn/wc.db
):
sqlite3 .svn/wc.db "pragma integrity_check"
That should report some errors.
Then you might be able to clean them up by doing:
sqlite3 .svn/wc.db "reindex nodes" sqlite3 .svn/wc.db "reindex pristine"
If there are still errors after that, you still got the option to check out a fresh copy of the repository to a temporary folder and copy the .svn folder from the fresh copy to the old one. Then the old copy should work again and you can delete the temporary folder.
sqlite3 .svn/wc.db "pragma integrity_check"
sqlite3 .svn/wc.db "reindex nodes" sqlite3 .svn/wc.db "reindex pristine"
You may be able to dump the contents of the database that can be read to a backup file, then slurp it back into an new database file:
sqlite3 .svn/wc.db sqlite> .mode insert sqlite> .output dump_all.sql sqlite> .dump sqlite> .exit mv .svn/wc.db .svn/wc-corrupt.db sqlite3 .svn/wc.db sqlite> .read dump_all.sql sqlite> .exit
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With