Delete Database file?

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Delete Database file?

Mick Sulley
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

Reply | Threaded
Open this post in threaded view
|

Re: Delete Database file?

Maik Qualmann
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
Reply | Threaded
Open this post in threaded view
|

Re: Delete Database file?

Mick Sulley
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
>

Reply | Threaded
Open this post in threaded view
|

Re: Delete Database file?

Boudewijn
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.


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



--
Sent without keyboard or normal screen, hence lacking spelling, grammar and layout in greater doses than usually
Reply | Threaded
Open this post in threaded view
|

Re: Delete Database file?

Mick Sulley

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 -
sqlite3 digikam4.db "pragma integrity_check"
if this returns 'ok' then there is no problem.
If it returns errors

sqlite3 digikam4.db
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.

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.


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

--
Sent without keyboard or normal screen, hence lacking spelling, grammar and layout in greater doses than usually