cmd line: import of transactions and invoice data

John Ralls jralls at
Tue Dec 31 15:19:08 EST 2013

On Dec 31, 2013, at 11:50 AM, Jannick < at> wrote:

> Derek Atkins <derek <at>> writes:
> Hi,
>> On Tue, December 31, 2013 11:36 am, Emmanuel Florent wrote:
>>>> Coming from another (back-)end: Do you know if someone has gone down the
>>>> implementation route to import data into the MySQL db?
>>> Is that right that Gnucash empty all the tables in db then rewrite them so
>>> the db bridge is not possible in your case  ?
>> As John already answered, no, GnuCash doesn't empty and rewrite your
>> tables for you (except in certain limited cases, like File -> Save As).
> This implies that GnuCash fires up some updating commands when it comes to
> updating are creating transactions - or am I missing something here? This
> might be why GnuCash runs a lot faster when connected to the mySQL server
> (in contrast to having loaded the db from the hard drive) I guess. 

It updates the database after any change to the in-memory data. At least we
think it does, but we don’t yet have complete test coverage to be sure that
we haven’t missed something in our audits.

>> However, GnuCash DOES NOT support you writing to the database behind it. 
>> To write the DB you *MUST* use the GnuCash API (in C, Scheme, or Python).
> This *is* a very good point. For the benefit of my better understanding:
> Given my first guess above is correct, then how does GC work when it comes
> to manually input data or insert it via the AqBanking interface (HBCI)? What
> does it do when information are handed in?

It parses the incoming stream and converts it to internal data structures, prompting
the user via a dialog box to assign the accounts for each side of the transactions,
then runs data-integrity routines on each transaction to ensure that the transaction
balances, creating an imbalance-account-split if it doesn’t. If you’re using the SQL
backend it updates the various affected tables immediately, otherwise it sets the
book dirty flag.

John Ralls

More information about the gnucash-devel mailing list