GEPS 032: Database Backend API

From Gramps
Revision as of 02:13, 3 December 2013 by Dsblank (talk | contribs) (Created page with "This proposal defines a complete Database Backend API so that we can have drop-in replacement for BSDDB. This would allow the use of other databases, even relational/SQL backe...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This proposal defines a complete Database Backend API so that we can have drop-in replacement for BSDDB. This would allow the use of other databases, even relational/SQL backends, but used in a non-relational manner.

This is an idea refined from GEPS 010: Relational Backend. However, without the relational components.

The first step is to separate all of the gramps.gen.db code into reusable and extendable components. This has begun with the DictionaryDB, which is a in-memory replacement for the BSDDB. Still needs the indexes, and metadata support (gender names, bookmarks, etc). Also, the Dictionary transaction is non-existent.

Backends to consider:

  • MongoDB
  • CouchDB
  • Sqlite

Issues:

  1. Need to be able to represent transactions
  2. Need to be able to undo/redo