From: Josip <jo...@pi...> - 2015-05-23 14:50:25
|
23.5.2015. u 8:50, Doug Blank je napisao/la: > Although Gramps may always ship with the BSDDB backend (to make sure > that it can always open legacy databases), it would be nice to have a > less complex, more modern, more robust alternative as a new suggested > backend. > > To that end, I have developed a new DB-API 2.0 compliant database > backend. Initially, it is configured to use sqlite3, but can use any of > the DB-API 2.0 compliant databases. In this backend, each of the primary > tables (Person, Family, Event, etc) have at least three fields: handle, > gramps_id, and blob. The blob is the pickled serialized data. So, it > isn't a relational database at all, but just using sqlite3 as an object > store with indexes. May need to add a couple of more fields to increase > speed, and to hook up the metadata functionality. > > The sqlite3 on-disk file format hasn't changed since 2006 [1] and is > designed to be a good application file format [2]. Of course, we still > have to deal with changes in our own data formats, and if the pickle > format changes. But other than that, no more discovering that pybsddb or > the bsddb layer has changed, without the ability to open your old > databases. No more log files. No more changing BSDDB flags. Even with > just sqlite3, the database can be opened by multiple users. With other > DB-API databases, you can share the database from a server. > > It should be ready for testing (everything but not metadata---things > like gender stats, bookmarks, surname completion, etc) I'm hoping to > have this backend complete this weekend. At that point, I don't > personally plan on using BSDDB any more, unless I have to. > Am i only one who is not impressed by this? Modern as Python is modern? How toy database like sqlite3 can be more robust then bsddb, ah i forget it would be not real sqlite3 database. -- Josip |