SQL backend for GnuCash 2

Derek Atkins warlord at MIT.EDU
Sun Oct 22 11:09:32 EDT 2006


Phil,

Quoting Phil Longstaff <plongstaff at rogers.com>:

> I have some time available for development (was laid off about a week
> ago :-( ) and thought that a good project to spend some time on would be
> an SQL backend for GC2/QOF.  I know that a while ago, someone named
> Matthew V.... (?) was working on something in the GC 1.X series, but I
> haven't seen his name on the devel list in a long time.  I know Derek is
> still interested in an SQL backend.  I could either:

A long long time ago Matthew Vanneck was working on some pieces.
I might even have a copy of what he was working on.  I'd have to
go search my mail archives, but I might have a tarball somewhere.
Unclear if the contents would be useful at all.

> 1) target SQLite, PostgreSQL or MySQL directly in a QOF back end, or
> 2) target libdbi or another such layer (how many data layers do we
> want?) which would give us all three (SQList, PostgreSQL and MySQL
> immediately), or
> 3) target ODBC using iODBC which would give us even more databases we
> could connect to.

I would recommend #2 (but you can choose whether you want to target libdbi
or GDA -- there's some concern that dbi is "dead" because they haven't
made a release since early 2005).

> Is there any current vision for database use?  Of the 3 databases I've
> listed, I've only used MySQL.  SQLite would remove the need for an
> external db server, though embedded MySQL would also remove this.

Well, MY vision is two-fold:

1) I'd like to replace the default File backend with SQLite.  The reason
   I want SQLite instead of "embedded MySQL" is not only that it's an
   embedded server, but also because the target database is stored in a
   single file!   Embedded MySQL still requires a database directory and
   stores multiple files (one file per table) in that directory.

2) Multi-user access -- I think users should be able to run gnucash on their
   DB of choice (MySQL or Postgres) and have multiple instance of gnucash
   running on multiple machines all access the same database simultaneously.

> Thoughts?

Someone else was just talking about this on this list a week or two ago.
You might want to try to cooperate if you can.   First thing to do is try
to come up with a database schema and a design for an extensible SQL-DB
backend/plugin.  I'd recommend doing this before you start writing code.
It doesn't need to be a full specification, but I'd at least like to see
an example of the (full) schema and a page or three on how you plan to
implement it...

> Phil

-derek

PS: I'm sorry to hear about your job!
-- 
       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available



More information about the gnucash-devel mailing list