python GnuCash interface to SQL backend

Derek Atkins warlord at MIT.EDU
Thu Nov 13 21:31:08 EST 2014

Sébastien de Menten <sdementen at> writes:

> Where could I find detailed documentation on the GnuCash engine (and the
> constrains/invariants GnuCash enforces) ? Or would there be some
> code/program to check a GnuCash file is "sane/consistent" ?

Only in the implementation.  There is no documentation per se on this,
because we do not support modification of the database from outside the
GnuCash APIs.  This also allows us to change the underlying storage
mechanisms without breaking things, because it's all abstracted.  By
re-implementing it you're basically binding yourself to a particular
version of the database schema, which can (and will) change over time,
requiring you to duplicate the effort already happening in the gnucash

Moreover, you're also tied to a particular backend, which isn't very

If you want to modify the gnucash database, you really should use the
exported GnuCash APIs.

If the current python bindings aren't pythonic enough for you, then I
urge you to spend the time to fix that instead of reimplementing
something that will absolutely break some time in the future.  When it
will break I cannot tell you, but I can assure you it WILL break at some

> Regards
> Sebastien


       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL:    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available

More information about the gnucash-devel mailing list