Digikam not displaying photos after computer reinstall

Richard Mortimer richm+digikam at oldelvet.org.uk
Mon Aug 7 19:39:32 BST 2017


Moving the discussion from digikam-users...

On 04/08/2017 20:48, Maik Qualmann wrote:
> Richard,
> 
> I have the patch from https://bugs.kde.org/show_bug.cgi?id=382732 to git/
> master commited. Do you see a solution for the MySQL and "IF EXISTS" problem?

I can think of a few different options but would be interested to know
what others think is the appropriate action:

1 - Ignore the "upgrade" from database 7 to 8 on MySQL/MariaDB. The
schema has been changed around quite a bit and we do not know what
tweaks have been made to add/remove indexes etc. Starting afresh with a
known v8 state is good from that point of view.

2 - I think it is possible to search for the indexes in the private
MySQL tables and only run the appropriate changes if needed. But I think
this may require elevated database access privileges so may not be
ideal. This is also likely to be fragile and may break in future
versions of MySQL/MariaDB.

3 - Could the database XML format/framework be extended to add an extra
attribute like ignorefail="true" and we add that to the ones where we
would otherwise use "IF EXISTS". That way the framework could just
ignore the failing statement and move on to another. I'm not sure if
this may fall foul of transactions but then again I am not sure if they
are used when changing the schema version.

Technically I would probably favour the first option and force people to
use a migration if they are using MySQL. This is not massively user
friendly but it may be better to eliminate support issues going forward.

Certainly I know from my experiences with using digikam MySQL I have
plenty of orphan data from previous bugs/crashes and I just used
migration to pull my data over to V8 and digikam 5.x.

Practically using option 3 may be the best compromise.

Regards

Richard


> 
> Maik
> 
> Am Freitag, 4. August 2017, 21:25:24 CEST schrieb Richard Mortimer:
>> Hi,
>>
>> I was wondering if MariaDB might work! I had a brief look at the v7 to
>> v8 upgrade scripts and noticed that it uses "IF EXISTS". That isn't
>> supported in MySQL (only supported in MariaDB 10.0 upwards). I guess
>> that means that upgrades are not supported for MySQL at all.
>>
>> I think that practically any user with a pre v8 database (I think that
>> means a database created in digikam 4.x or earlier) is best advised to
>> migrate the old database into a new database. The digikam 5.x
>> MySQL/MariaDB changes corrected a lot of previous problems and will give
>> you a database that should work correctly.
>>
>> There can be some issues migrating an existing database due to previous
>> bugs/features.
>>
>> I provided some mysql commands to help cleanup the data in bug 355831
>> https://bugs.kde.org/show_bug.cgi?id=355831
>> specifically
>> https://bugs.kde.org/attachment.cgi?id=99906
>>
>> Recently I've suggested some changes to the migration that ignore the
>> bad data during migration. That is not included in digikam yet.
>> https://bugs.kde.org/show_bug.cgi?id=382732
>>
>> I would really sugggest that you try a migration to a clean database. I
>> have done that with my databases to ensure minimal problems at a later date.
>>
>> Regards
>>
>> Richard
>>
>> On 04/08/2017 19:29, Maik Qualmann wrote:
>>> Can you use MariaDB? The update to the database version V8 should work
>>> with
>>> MariaDB.
>>>
>>> Maik
>>>
>>> Am Mittwoch, 2. August 2017, 22:41:20 CEST schrieb Kees Vonk:
>>>> Hello,
>>>>
>>>> I have recently needed to reinstall my computer. I have backed up the
>>>> mysql database that I was using and restore it on my rebuild computer. I
>>>> am not sure what version of digikam was installed before, but I now have
>>>> digikam 5.6 on Ubuntu 17.04 (initially digikam 5.4 was installed, but
>>>> because of the problems I was facing I upgraded to 5.6). The mysql
>>>> version is 5.7.
>>>>
>>>> When I start up digikam it comes up with an error about upgrading the
>>>> database and then when digikam comes up it there don't seem to be any
>>>> photos, even though they are in the same location as on the previous
>>>> build of the computer.
>>>>
>>>> I have started it up from the terminal to capture the output and errors,
>>>> which gives me the output below. I added the digikam-facedb when it was
>>>> complaining about DB errors, but it has not actually created the
>>>> database. I have even added the mysql root user to see if that would
>>>> make a difference.
>>>>
>>>> Any help would be greatly appreciated.
>>>>
>>>> Kees
>>>>
>>>> ----- output of digikam captured from terminal -----
>>>>
>>>> digikam.general: AlbumWatch use QFileSystemWatcher
>>>>
>>>> digikam.general: Database Parameters:
>>>>     Type:                     "QMYSQL"
>>>>     DB Core Name:             "digikam"
>>>>     DB Thumbs Name:           "digikam-thumbnails"
>>>>     DB Face Name:             "digikam-facedb"
>>>>     Connect Options:          ""
>>>>     Host Name:                "localhost"
>>>>     Host port:                3306
>>>>     Internal Server:          false
>>>>     Internal Server Path:     ""
>>>>     Internal Server Serv Cmd: ""
>>>>     Internal Server Init Cmd: ""
>>>>     Username:                 "root"
>>>>     Password:                 "XXXXXXXXXXXXX"
>>>>
>>>> digikam.dbengine: Loading SQL code from config file
>>>> "/usr/share/digikam/database/dbconfig.xml"
>>>> digikam.dbengine: Checking XML version ID => expected:  3 found:  3
>>>> digikam.coredb: Core database: running schema update
>>>> digikam.coredb: Core database: have a structure version  7
>>>> digikam.coredb: Core database: makeUpdates  7  to  8
>>>>
>>>> digikam.dbengine: Failure executing query:
>>>>   ""
>>>>
>>>> Error messages: "QMYSQL: Unable to execute query" "You have an error in
>>>> your SQL syntax; check the manual that corresponds to your MySQL server
>>>> version for the right syntax to use near 'IF EXISTS identifier' at line
>>>> 2" 1064 2
>>>> Bound values:  ()
>>>> digikam.dbengine: Error while executing DBAction [
>>>> "UpdateSchemaFromV7ToV8" ] Statement [ "ALTER TABLE
>>>> AlbumRoots\n                                        DROP INDEX IF EXISTS
>>>> identifier;" ]
>>>> digikam.coredb: Core database: schema update to V 8 failed!
>>>> digikam.coredb: Core database: cannot process schema initialization
>>>> KMemoryInfo: Platform identified :  "LINUX"
>>>> KMemoryInfo: TotalRam:  8295964672
>>>> digikam.general: Allowing a cache size of 200 MB
>>>> digikam.general: Switch to widget style:  ""
>>>> digikam.dimg: ("/usr/share/color/icc")
>>>> digikam.dimg: No X.org XICC profile installed for screen  0
>>>> digikam.general: Camera XML data:
>>>> "/home/cesera/.local/share/digikam/cameras.xml"
>>>> digikam.facedb: FaceDB SelectFaceSetting val ret =  0
>>>> digikam.facedb: FaceDB SelectFaceSetting val ret =  0
>>>> digikam.facedb: Face database: have a structure version  "2"
>>>> digikam.facesengine: Face database ready for use
>>>> digikam.general: Face PipeLine: add database writer
>>>> digikam.general: Face PipeLine: add faces trainer
>>>> digikam.facesengine: Face database ready for use
>>>> digikam.general: Face PipeLine: add database writer
>>>> digikam.general: Face PipeLine: add faces trainer
>>>> digikam.geoiface: "setting backend marble"
>>>> digikam.general: AudioOutput backends: ("Pulse", "OpenAL", "null")
>>>> digikam.general: Stacked View Mode :  0
>>>> digikam.geoiface: "setting backend marble"
>>>> digikam.geoiface: "setting backend marble"
>>>> digikam.general: "browse_album"
>>>> digikam.general: "browse_tag"
>>>> digikam.general: "browse_labels"
>>>> digikam.general: "browse_date"
>>>> digikam.general: "browse_timeline"
>>>> digikam.general: "browse_search"
>>>> digikam.general: "browse_fuzzysearch"
>>>> digikam.general: "browse_gpssearch"
>>>> digikam.general: "browse_people"
>>>> digikam.widgets: Paths to color scheme :
>>>> ("/usr/share/digikam/colorschemes") digikam.widgets: "Breeze"  ::  ""
>>>> digikam.widgets: "Breeze"  ::  ""
>>>> QFSFileEngine::open: No file name specified
>>>> digikam.dimg: Root lens database dir:  "/usr/share/lensfun"
>>>> digikam.dimg: Load lens database file:  "6x6.xml"
>>>> digikam.dimg: Load lens database file:  "actioncams.xml"
>>>> digikam.dimg: Load lens database file:  "compact-canon.xml"
>>>> digikam.dimg: Load lens database file:  "compact-casio.xml"
>>>> digikam.dimg: Load lens database file:  "compact-fujifilm.xml"
>>>> digikam.dimg: Load lens database file:  "compact-kodak.xml"
>>>> digikam.dimg: Load lens database file: "compact-konica-minolta.xml"
>>>> digikam.dimg: Load lens database file:  "compact-leica.xml"
>>>> digikam.dimg: Load lens database file:  "compact-nikon.xml"
>>>> digikam.dimg: Load lens database file:  "compact-olympus.xml"
>>>> digikam.dimg: Load lens database file:  "compact-panasonic.xml"
>>>> digikam.dimg: Load lens database file:  "compact-pentax.xml"
>>>> digikam.dimg: Load lens database file:  "compact-ricoh.xml"
>>>> digikam.dimg: Load lens database file:  "compact-samsung.xml"
>>>> digikam.dimg: Load lens database file:  "compact-sigma.xml"
>>>> digikam.dimg: Load lens database file:  "compact-sony.xml"
>>>> digikam.dimg: Load lens database file:  "contax.xml"
>>>> digikam.dimg: Load lens database file:  "generic.xml"
>>>> digikam.dimg: Load lens database file:  "mil-canon.xml"
>>>> digikam.dimg: Load lens database file:  "mil-fujifilm.xml"
>>>> digikam.dimg: Load lens database file:  "mil-nikon.xml"
>>>> digikam.dimg: Load lens database file:  "mil-olympus.xml"
>>>> digikam.dimg: Load lens database file:  "mil-panasonic.xml"
>>>> digikam.dimg: Load lens database file:  "mil-pentax.xml"
>>>> digikam.dimg: Load lens database file:  "mil-samsung.xml"
>>>> digikam.dimg: Load lens database file:  "mil-samyang.xml"
>>>> digikam.dimg: Load lens database file:  "mil-sigma.xml"
>>>> digikam.dimg: Load lens database file:  "mil-sony.xml"
>>>> digikam.dimg: Load lens database file:  "mil-tamron.xml"
>>>> digikam.dimg: Load lens database file:  "mil-zeiss.xml"
>>>> digikam.dimg: Load lens database file:  "misc.xml"
>>>> digikam.dimg: Load lens database file:  "rf-leica.xml"
>>>> digikam.dimg: Load lens database file:  "slr-canon.xml"
>>>> digikam.dimg: Load lens database file:  "slr-hasselblad.xml"
>>>> digikam.dimg: Load lens database file:  "slr-konica-minolta.xml"
>>>> digikam.dimg: Load lens database file:  "slr-leica.xml"
>>>> digikam.dimg: Load lens database file:  "slr-nikon.xml"
>>>> digikam.dimg: Load lens database file:  "slr-olympus.xml"
>>>> digikam.dimg: Load lens database file:  "slr-panasonic.xml"
>>>> digikam.dimg: Load lens database file:  "slr-pentax.xml"
>>>> digikam.dimg: Load lens database file:  "slr-ricoh.xml"
>>>> digikam.dimg: Load lens database file:  "slr-samsung.xml"
>>>> digikam.dimg: Load lens database file:  "slr-samyang.xml"
>>>> digikam.dimg: Load lens database file:  "slr-schneider.xml"
>>>> digikam.dimg: Load lens database file:  "slr-sigma.xml"
>>>> digikam.dimg: Load lens database file:  "slr-soligor.xml"
>>>> digikam.dimg: Load lens database file:  "slr-sony.xml"
>>>> digikam.dimg: Load lens database file:  "slr-tamron.xml"
>>>> digikam.dimg: Load lens database file:  "slr-tokina.xml"
>>>> digikam.dimg: Load lens database file:  "slr-ussr.xml"
>>>> digikam.dimg: Load lens database file:  "slr-vivitar.xml"
>>>> digikam.dimg: Load lens database file:  "slr-zeiss.xml"
>>>> digikam.dimg: variant:  QVariant(Digikam::LensFunIface::DevicePtr, )
>>>> digikam.dimg: dev:  AEE  ::  AEE DV  ::  6
>>>> digikam.dimg: Search for camera  "" - ""  ==> false
>>>> digikam.dimg: Search for lens  ""  ==> false
>>>> digikam.dimg: updating data
>>>> digikam.dimg: updating data
>>>> digikam.general: Using  4  CPU core to run threads
>>>> digikam.general: new search text settings:  "" : hasResult = false ,
>>>> validRows =  0
>>>> QFSFileEngine::open: No file name specified
>>>> digikam.geoiface: ----
>>>> digikam.general: Did not find album root album in hash
>>>> digikam.general: Did not find album root album in hash
>>>> digikam.general: Did not find album root album in hash
>>>> digikam.general: Could not find parent with url:  ""  for: "/00000000"
>>>> digikam.general: Could not find parent with url:  ""  for: "/00000000"
>>>> digikam.general: Could not find parent with url:  ""  for: "/00000000"
>>>> digikam.general: Could not find parent with url:  ""  for: "/200107-July"
>>>> digikam.general: Could not find parent with url:  ""  for: "/200107-July"
>>>> digikam.general: Could not find parent with url:  ""  for: "/200107-July"
>>>> digikam.general: Could not find parent with url:  ""  for:
>>>> "/200202-February"
>>>> digikam.general: Could not find parent with url:  ""  for:
>>>> "/200202-February"
>>>> digikam.general: Could not find parent with url:  ""  for:
>>>> "/200202-February"
>>>> digikam.general: Could not find parent with url:  ""  for:
>>>> "/200203-March"
>>>> digikam.general: Could not find parent with url:  ""  for:
>>>> "/200203-March"
>>>> digikam.general: Could not find parent with url:  ""  for:
>>>> "/200203-March"
>>>> digikam.general: Could not find parent with url:  "/200203-March" for:
>>>> "/200203-March/20020312"
>>>> digikam.general: Could not find parent with url:  "/200203-March" for:
>>>> "/200203-March/20020312"
>>>> digikam.general: Could not find parent with url:  "/200203-March" for:
>>>> "/200203-March/20020312"
>>>> digikam.general: Could not find parent with url:  "/200203-March" for:
>>>> "/200203-March/20020326"
>>>> digikam.general: Could not find parent with url:  "/200203-March" for:
>>>> "/200203-March/20020326"
>>>> digikam.general: Could not find parent with url:  "/200203-March" for:
>>>> "/200203-March/20020326"
>>>> digikam.general: Could not find parent with url:  "/200203-March" for:
>>>> "/200203-March/20020329"
>>>> digikam.general: Could not find parent with url:  "/200203-March" for:
>>>> "/200203-March/20020329"
>>>> digikam.general: Could not find parent with url:  "/200203-March" for:
>>>> "/200203-March/20020329"
>>>> digikam.general: Could not find parent with url:  "/200203-March" for:
>>>> "/200203-March/20020331"
>>>>
>>>> ... this kind of message repeats for about 2600 lines ...
>>>>
>>>> digikam.general: Could not find parent with url:  "/201206-June" for:
>>>> "/201206-June/20120609"
>>>> digikam.general: Could not find parent with url:  "/201206-June" for:
>>>> "/201206-June/20120609"
>>>> digikam.general: Could not find parent with url:  ""  for: "/Unkown"
>>>> digikam.general: Could not find parent with url:  ""  for: "/Unkown"
>>>> digikam.general: Could not find parent with url:  "/Unkown"  for:
>>>> "/Unkown/pixie"
>>>> digikam.general: Could not find parent with url:  "/Unkown"  for:
>>>> "/Unkown/pixie"
>>>> digikam.general: Using  4  CPU core to run threads
>>>> digikam.general: Action Thread run  1  new jobs
>>>> digikam.geoiface: ----
>>>> digikam.geoiface: ----
>>>> digikam.general: Using  4  CPU core to run threads
>>>> digikam.general: Action Thread run  1  new jobs
>>>> digikam.geoiface: ----
>>>> digikam.database: " ( (Images.id IN (?,?,?,?,?)  ) ) "
>>>>
>>>> digikam.database: Search query:
>>>>   "SELECT DISTINCT Images.id, Images.name, Images.album,
>>>>
>>>> Albums.albumRoot,        ImageInformation.rating,
>>>> Images.category,        ImageInformation.format,
>>>> ImageInformation.creationDate,        Images.modificationDate,
>>>> Images.fileSize,        ImageInformation.width,
>>>> ImageInformation.height,        ImagePositions.latitudeNumber,
>>>> ImagePositions.longitudeNumber  FROM Images        LEFT JOIN
>>>> ImageInformation ON Images.id=ImageInformation.imageid LEFT  JOIN
>>>> ImageMetadata    ON Images.id=ImageMetadata.imageid        LEFT  JOIN
>>>> VideoMetadata ON Images.id=VideoMetadata.imageid        LEFT  JOIN
>>>> ImagePositions   ON Images.id=ImagePositions.imageid        INNER JOIN
>>>> Albums           ON Albums.id=Images.album WHERE Images.status=1 AND (
>>>> ( (Images.id IN (?,?,?,?,?)  ) )  );"
>>>>
>>>>   (QVariant(qlonglong, 5436), QVariant(qlonglong, 5432),
>>>>
>>>> QVariant(qlonglong, 5429), QVariant(qlonglong, 5435),
>>>> QVariant(qlonglong, 5433))
>>>> digikam.general: Cancel Main Thread
>>>> digikam.geoiface: ----
>>>> digikam.database: Search result: 70
>>>> digikam.general: Using  4  CPU core to run threads
>>>> digikam.general: Stacked View Mode :  2
>>>> digikam.general: Action Thread run  1  new jobs
>>>> digikam.geoiface: "ROADMAP"
>>>> digikam.geoiface: "ROADMAP"
>>>> digikam.geoiface: "ROADMAP"
>>>> digikam.geoiface: ----
>>>> digikam.general: Stacked View Mode :  2
>>>> digikam.geoiface: "ROADMAP"
>>>> digikam.geoiface: ----
>>>> digikam.general: Stacked View Mode :  2
>>>> digikam.general: Not active, returning without action
>>>> digikam.general: One job is done
>>>> digikam.general: One job is done
>>>> digikam.general: Data From DBJobsThread is null:  true
>>>> digikam.general: Cancel Main Thread
>>>> digikam.general: One job is done
>>>> kipi.library: Plugin  "KXMLHelloWorld"  (generic name: "KXMLHelloWorld"
>>>> ) is in the ignore list from host application
>>>> digikam.geoiface: ----
>>>> digikam.general: Stacked View Mode :  2
>>>> digikam.geoiface: "setting backend marble"
>>>> QFSFileEngine::open: No file name specified
>>>> digikam.geoiface: "ROADMAP"
>>>> digikam.geoiface: "setting backend marble"
>>>> digikam.facesengine: Face database ready for use
>>>> digikam.general: Face PipeLine: add database writer
>>>> digikam.general: Face PipeLine: add faces trainer
>>>> digikam.facesengine: Face database ready for use
>>>> digikam.general: Face PipeLine: add database writer
>>>> digikam.general: Face PipeLine: add faces trainer
>>>> digikam.geoiface: "setting backend marble"
>>>> QFSFileEngine::open: No file name specified
>>>> digikam.geoiface: "ROADMAP"
>>>> digikam.geoiface: "ROADMAP"
>>>> digikam.geoiface: ----
>>>> digikam.general: scan mode: ScanDeferredFiles
>>>> digikam.general: total scan value :  0
>>>> digikam.database: items to tag ()
>>>> digikam.database: Complete scan took: 111 msecs.
>>>> digikam.general: Event is dispatched through a passive pop-up
>>>> QLayout: Attempting to add QLayout "" to QWidget "", which already has a
>>>> layout
>>>> digikam.geoiface: ----
>>>> digikam.dbengine: WARNING !!! Transaction count is 1 when destroying
>>>> database!!!
>>>> digikam.general: Cancel Main Thread
>>>> digikam.general: Cancel Main Thread
>>>> digikam.general: Cancel Main Thread
>>>> digikam.general: Cancel Main Thread
>>>> digikam.general: Cancel Main Thread
>>>> QtAV 1.11.0(Mar 14 2017, 12:08:50)
>>>> Multimedia framework base on Qt and FFmpeg.
>>>> Distributed under the terms of LGPLv2.1 or later.
>>>> Shanghai University->S3 Graphics->Deepin, Shanghai, ChinaCopyright (C)
>>>> 2012-2016 Wang Bin (aka. Lucas Wang) wbsecg1 at gmail.com
>>>> Donate: http://qtav.org/donate.html
>>>> Source: https://github.com/wang-bin/QtAV
>>>> Home page: http://qtav.org
> 



More information about the Digikam-devel mailing list