To repair a corrupt database you can use the sqlite3 commandline utility. Type in the following commands in a shell after setting the environment variables:
cd $DATABASE_LOCATION
echo '.dump'|sqlite3 $DB_NAME|sqlite3 repaired_$DB_NAME
mv $DB_NAME corrupt_$DB_NAME
mv repaired_$DB_NAME $DB_NAME
This code helped me recover a SQLite database I use as a persistent store for Core Data and which produced the following error upon save:
Could not save: NSError 259 in Domain
NSCocoaErrorDomain { NSFilePath =
mydata.db NSUnderlyingException =
Fatal error. The database at mydata.db
is corrupted. SQLite error code:11,
‘database disk image is malformed’ }