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.
ACCOMPLISHMENTS
- Understand all three parts of Core DB:
- CoreDB- hosts all albums, items, search data…
- ThumbsDB – host image Thumbnails.
- 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).
ISSUES/ROADBLOCKS FACED
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.
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!
LikeLike
I’m overwhelmed that this blog could be of use to you. And, you’re most welcome to contribute to the code!
LikeLike
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
LikeLike
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!
LikeLike