This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

Database Migration and Backup

Launchpad blueprint: db-migration-and-backup

There are (at least) three cases where serializing the log database to some external format would be nice:

Implementation

First and foremost we need to version the database in some way. There are two key factors:

Each DB backend should for each version implement some serializer class that outputs in some serialization format set in stone. I propose that we use whatever Tracker use for their backups, I believe it is Turtle or N3. Then we need a deserializer and an importer.

GUI

It would be nice with a super simple GUI tool. Really just a dialog with OK/Cancel buttons, a progress bar and some message stating that DB migration is about to be performed and that it might thrash the system while it runs.

Tasks

Here follows a work break down of the tasks needed to accomplish this:

  1. Define a way to version the DB.
  2. Define serialization format
  3. Write framework code for choosing the right migration path given two DBs with given versions
  4. Write serializer for querymancer_engine.py
  5. Write deserializer for querymancer_engine.py
  6. Write importer leveraging points 3-5
  7. Write simple GUI

2024-10-23 11:37