Resources database backups

Authored by ivan on Jun 6 2020, 7:53 PM.

Description

Resources database backups

More and more things depend on KAMD's resources database.
Recent documents, favourites, KRunner, to name a few.

Now, SQLite is fairly stable with the write-ahead-log that
has been enabled in KAMD for ages, but corruptions can
still happen. Sometimes in SQLite, sometimes in the underlying
file system.

This patch introduces a two-step backup system for the
resources database. On each start, the current database
files are copied to test-backup directory.

If no error appeared during the previous KAMD run, the
test-backup files are promoted to working-backup.

This means that in order for a specific version of the
database to be considered as 'working' (promoted to a
working backup), it needs to have been a beginning of
an error-free KAMD session.