I seem to have some corruption of my database (sqlite), some pictures do
not display in Digikam. I just renamed my database and restarted Digikam (4.14) and it recreated the database, but the old file was 72.7 MB and the new one is 14.4 MB. The missing pictures do now display. I have checked through some of the tables and there are big differences in numbers, e.g. ImageMetadata 46,949 records in the old table, 21,310 in the new table. I feel that to be safe and not loose data I need to restore the old database. Any comments, advise? I have loads of tags and I really don't want to loose them and see no easy way to confirm that they are all there. Thanks Mick |
I think you should first check their hard drive. It is well possible that it
has defective sectors. It would be a possible explanation for the broken digiKam DB. Maik On Donnerstag, 17. November 2016 21:20:30 CET Mick Sulley wrote: > I seem to have some corruption of my database (sqlite), some pictures do > not display in Digikam. > > I just renamed my database and restarted Digikam (4.14) and it recreated > the database, but the old file was 72.7 MB and the new one is 14.4 MB. > The missing pictures do now display. > > I have checked through some of the tables and there are big differences > in numbers, e.g. ImageMetadata 46,949 records in the old table, 21,310 > in the new table. > > I feel that to be safe and not loose data I need to restore the old > database. Any comments, advise? I have loads of tags and I really > don't want to loose them and see no easy way to confirm that they are > all there. > > Thanks > > Mick -- Gruß Maik |
I have run self check on the disk and it seems fine.
On 17/11/16 21:26, Maik Qualmann wrote: > I think you should first check their hard drive. It is well possible that it > has defective sectors. It would be a possible explanation for the broken > digiKam DB. > > Maik > > On Donnerstag, 17. November 2016 21:20:30 CET Mick Sulley wrote: >> I seem to have some corruption of my database (sqlite), some pictures do >> not display in Digikam. >> >> I just renamed my database and restarted Digikam (4.14) and it recreated >> the database, but the old file was 72.7 MB and the new one is 14.4 MB. >> The missing pictures do now display. >> >> I have checked through some of the tables and there are big differences >> in numbers, e.g. ImageMetadata 46,949 records in the old table, 21,310 >> in the new table. >> >> I feel that to be safe and not loose data I need to restore the old >> database. Any comments, advise? I have loads of tags and I really >> don't want to loose them and see no easy way to confirm that they are >> all there. >> >> Thanks >> >> Mick > |
Can you access the old database with a sqlite-tool? Maybe there's an option to dump tables to text and import it to the new one. Of course, work on a copy of the original database.
Best regards, Boudewijn On November 19, 2016 12:34:35 PM GMT+01:00, Mick Sulley <[hidden email]> wrote: I have run self check on the disk and it seems fine. -- Sent without keyboard or normal screen, hence lacking spelling, grammar and layout in greater doses than usually |
Yes I have investigated and 'mended' it. The big problem with this sort of thing is that you can never be sure if you have lost anything. I found some info on this link http://stackoverflow.com/questions/13675615/svn-cleanup-sqlite-database-disk-image-is-malformed In case anyone else has a similar problem here is what I did - run sqlite3 to check integrity, best copy digikam4.db to a temp
directory, go to that directory and run - sqlite> .mode insert sqlite> .output dump_all.sql sqlite> .dump sqlite> .exit then restart on a new database sqlite3 new.db sqlite> .read dump_all.sql sqlite> .exit This has now created a new database file that should have everything that was recoverable from the original. Rename the existing and use this new one to replace it. I had previously tried just deleting (renaming to backup) the database and restart re-created it. Comparing the 3 databases, original, auto created and rebuilt as above, I saw these results for a couple of tables ImageInformation orig = malformed error, auto = 22028, rebuilt = 47195 ImageMetadata orig = 46949, auto 21310, rebuilt = 46948 So my conclusion is that the rebuilt database has recovered more of my data and that is the one I have used. It is of course possible that the additional records in rebuilt over auto are all rubbish and there was no advantage, but I have no way to know that so used the bigger one. Hope that helps someone. Mick On 21/11/16 19:16, Boudewijn wrote:
Can you access the old database with a sqlite-tool? Maybe there's an option to dump tables to text and import it to the new one. Of course, work on a copy of the original database. |
Free forum by Nabble | Edit this page |