2013/2/28 Tim Lyons <guy.linton@gmail.com>
Benny Malengier wrote
> 2013/2/25 John Ralls &lt;

> jralls@

> &gt;
>> There are two flavors of DB version in play: The schema version (16 for
>> Gramps34 and Gramps40, 17 for Gramps41) and the bsddb version. While
>> different versions of bsddb won't be able to read the same binary
>> database,
>> it's still possible for two versions of Gramps to exchange XML files as
>> long as the schema version is the same. Gramps can't import an XML file
>> if
>> the schema version is newer than the one it supports.
> Indeed, this is the main problem.
> Concerning bsddb, once downloaded, installing equal bsddb for python 2 and
> 3 is actually not difficult. It's only the default python2 version that
> somehow runs behind somewhat. Not for the normal user, but somebody
> creating a python2-bsddb3 package is possible. Also windows could create
> package with equal bsddb as they have the entire toolchain under control.

Are you saying that the main problem is different schema versions? Are you
saying the main problem is not different bsddb versions?

I don't think so! If you have an XML file then you are very safe. You can
fairly easily find a version of Gramps that will read it.

There is a major problem in Gramps with bsddb not being able to read the
database (for one reason or another).

Just look at http://www.gramps-project.org/bugs/view.php?id=5311 for a long
list of bsddb problems (yes, I know they will be due to different things,
and some of them may even be fixed). For a recent problem, look at
http://www.gramps-project.org/bugs/view.php?id=6483 which I raised just the
other day!

This is a serious bug. Before bsddb is allowed to upgrade, user should approve it. Clearly using -L does this silently, which should not be allowed.
However, this is easy to fix. Put it on the 4.0.0 roadmap. 

Otherwise, in Gramps proper, what normal user will run, he obtains a dialog: "family tree must be upgraded ...." so he is warned.

I suggest one common scenario is that a user upgrades Gramps (or bsddb)
either knowingly because they want to take advantage of a new feature, or
unknowingly by clicking on "Install Now" on some software updater because of
the warnings to protect against malware by keeping your software up to date.

If anything goes wrong, they are completely lost - no good telling them they
should have made a backup - it is too late!!! They can't go forward, and
because the new bsddb has touched the database, they probably can't go
backwards, even in the unlikely event they have the skill and knowledge to
try to do so.

If things go wrong, they go wrong. There is not much we should.

 If a database was touched by a more recent version of bsddb, an export to xml in .gramps and then import in old version works just fine.
You should not panick,  "If anything goes wrong, they are completely lost", will not happen. Gramps works, so if the database was upgraded then Gramps can export it to .gramps.
The only thing we can't protect user from is errors in the bsddb layer itself. But I believe that we can agree that for all it's percularities, bsddb is a good product.


View this message in context: http://gramps.1791082.n4.nabble.com/Gramps-4-0-0-beta1-tp4658903p4659062.html
Sent from the GRAMPS - Dev mailing list archive at Nabble.com.

Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
Gramps-devel mailing list