Page MenuHomeSolus

Use SQLite in Akonadi (or offer it as an optional backend)
Open, NormalPublic


We currently build Akonadi with both MariaDB and SQLite3 support. MariaDB is the go-to database backend in Akonadi, as upstream developers suggest. This is in my opinion too much, because I need a server-grade DBMS daemon running just to manage my personal contact ands calendar. On my sole home PC.

SQLite3 is somehow discouraged by upstream, but I strongly think that on Solus, a home computing OS, SQLite3 is not only a better choice in terms of performance and complexity, but also we don't need what a full fledged DBMS provides. Debian provides the SQLite3 backend as a separate package, so we could easily do the same by patterning the relevant files, since as I said we already build the SQLite3 backend.

Now the harder part is to discuss what we want to ship by default, and how to migrate users' database from one DMBS to the other (if needed).

Event Timeline

livingsilver94 updated the task description. (Show Details)

So How would be a migration going to happen? alone the guide Postgres guide takes manual steps inside $HOME do you have an up to date guide reg sqlite?

should we go the path and provide a separate pkg for sqlite integration the mariaDB must be still the default package so we wouldn't break any existing installs

I'll get back to this when I have more time. Sorry, busy IRL this month (and probably the next too, we'll see).

DataDrake triaged this task as Needs More Info priority.Oct 15 2021, 1:12 PM
DataDrake moved this task from Backlog to Improvement on the Software board.

Would it be OK to:

  1. Move MySQL support into a subpackage and make this subpkg a dependency of akonadi
  2. Set SQLite the default backend of akonadi (this is possible with a CMake flag). This won't touch existing config files.
  3. Wait some months.
  4. Remove the MySQL subpackage from akonadi's dependencies, so that users still relying on that backend will be happy (removing a dep doesn't make eopkg uninstall the package) and other users won't be forced to install it.


@livingsilver94 I think so. Have you had more time to think this over?

No, nor it was my intention. I think the plan is OK and I'm waiting for the green start working on it.

I may find a better plan while I'm reading the sources, but I think it's boring to read the code up front instead of when I actually need to.

@livingsilver94 I think it makes sense as long as it works.

DataDrake raised the priority of this task from Needs More Info to Normal.