digiKam: My SQL/MariaDB support

Being a Google Summer of Code’16 student, this is my first milestone report blog. Hope you’ll find it detailed enough!

Task 1: Review current whole database implementation including database schema hosted as XML.


  • Understand all three parts of Core DB:
  1.  CoreDB- hosts all albums, items, search data…
  2. ThumbsDB – host image Thumbnails.
  3.  FaceDB – host image histogram for face recognition.
  • Analyzing the ‘databaseserver’ code in core (which rely on DBUS. Actions are ongoing to minimize DBUS dependency, to improve digiKam stability for non Linux systems).
  • Understand how common code fragments work for both MySQL/SQLite (DB settings extracted from config file and later functions accordingly).
  • Understanding how SQL queries are being used in the source and implemented.
  • Thorough reading of dbconfig.xml.cmake.in file to understand how database schema is set up. (Create table/indexes/triggers statements for both SQLite/MySQL).
  • Understanding database version update through schemaupdater files (of all 3 DB).



I faced many doubts while reading the source code, plus several concept related queries. But all of them were resolved with Mentors’ help and guidance throughout.    





5 thoughts on “digiKam: My SQL/MariaDB support

  1. As a user of digiKam and thinking about possibly contributing some code, I’m very pleased to see this kind of posts that lets me understand how this great project is organized.
    Thanks for sharing!


  2. I am a long time user of digikam, I have several photos and the database is very slow with sqlite
    I can not load mysql in fedora and migrate the database.
    I always error “can not find mysqld”.
    In the past I used opensuse, you think it’s piuù easy to install mysql? and what difference you are getting with mariadb in digikam?
    thank you


    1. Sorry for late reply.

      That is because digikam is unable to find mysqld on your system. I recommend you to get a fresh installation of MariaDB/MySQL on your system. And then try switching from SQLite to MYSQL Internal.
      Here are the steps to install on Fedora: https://www.liquidweb.com/kb/how-to-install-mysqlmariadb-on-fedora-23/
      (Remember to not use password for root user).

      While using digiKam, there’s no difference between the two of them. You could use any!


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s