[Digikam-users] some questions about digikam metadata, DB and simultaneous use

Jean-François Rabasse jean-francois.rabasse at wanadoo.fr
Sat Feb 16 21:53:40 GMT 2013

Hi Marco,

On Sat, 16 Feb 2013, M. Fioretti wrote:

> Hi,
> I have a few interrelated questions on these topics. The connection
> among them is how to use digikam as a grouèp, that is 2 or more people
> that want to build, manage, tag, rate, comment, geotag... the same set
> of pictures collaboratively.
> 1) what parts, exactly, of the digikam database can NOT be saved into
>   the pictures? I tried to search online a database description,
>   without success but the google cache version of
>   http://fossies.org/linux/misc/digikam-2.9.0.tar.gz:a/digikam-2.9.0/core/project/documents/DBSCHEMA.ODS
>   from that table, I understand that "only" the album, albumroots and
>   tag trees table remain (rightly) outside the pictures. Is this
>   correct?

It's correct for the images collections pathnames, albums/folders and
albumsroots. But tags are saved into images, or sidecar files, under
a XMP format specific to Digikam (plus a compatible Adobe Lightroom

> 2) wrt to metadata saved inside pictures, I have the feeling I read
>   somewhere that digikam can save in XMP, ITPC and EXIF format, but
>   only to jpg and tiff files. Am I wrong?

Digikam uses the libexiv2 library for metadata handling. So, supported
files types are/should be the types supported by exiv2.
Depending on the file type, metadata can be read from file but not
always saved back to file.
You can find the complete info here (what is possible for which file
format) :

> 3) I have not clear, when it comes to the CURRENT versions of digikam,
>   what the situation is when it comes to simultaneous use of the same
>   digikam album/database. More exactly:
>   user A and user B have two Linux computers, with the same version
>   of digikam, on the same LAN. The pictures are on a NFS shared
>   folder, say /pictures, and their two copies of digikam both point
>   to the same database (which with such a setup could ONLY be mysql,
>   right?). Is it still true, as I read in the archives of this list,
>   that if both A and B have digikam open simultaneously, only the
>   user who started it first will have write access to the database?

An application using a database has two modes of behaviour :
- a session mode, the application opens/locks the database at startup
and release upon exit.
- a transaction mode, the application opens/read or write data/closes
upon each DB access need.

In transaction mode, multiples occurences of application can run in the
same time, concurrent access control is provided by the DB engine, here
the Mysql daemon.
From what you describe, it looks like a session mode for Digikam.
But you can test easily by starting a DK session on one machine, then
starting on another machine and try to update something and see if you
get a read-only error or not.

>   If not, will Bad Things happen even if there is NO access to the same
>   records?

Should not. Concurrent access is one of the guts of a database management
system, and MySQL does, as do PostgreSQL, Oracle, etc.
(But SQLite3 doesn't, it's not a database manager, just a file manager
with a SQL like interface.)
A DB manager that can't accept concurrent access should be garbaged.

>   Basically, I want to know if there's any way for me and my wife to
>   sit down together, each with a laptop, fire up digikam on the two
>   laptops, and say "OK, now I tag this month's pictures, you tag the
>   previous month, then each of us also saves all the metadata he
>   generated to the corresponding picture files", on the SAME set of
>   pictures, and the SAME database.

Probably the best way is to make a copy (and backup) of some of your
images folders (and a backup of your DB, sqldump or so), and try to work
on two different folders from two sessions. You will check your workflow
and see if the results are what you expect.


More information about the Digikam-users mailing list