[GNC] Location of GnuCash data files

Geert Janssens geert.gnucash at kobaltwit.be
Wed Jan 2 13:32:03 EST 2019


On Monday, December 31, 2018 8:40:40 PM CET Adrien Monteleone wrote:
> It should probably be filed in Bugzilla, but I think it might already be
> there.
> 

No for enhancement requests uservoice is fine. We haven't stated this 
explicitly I think, but I find it easier if bugzilla is really for tracking 
bugs.

> I seem to recall asking this question myself some months ago after a thread
> about user confusion over these files. I unfortunately can’t find the
> thread and don’t remember the exact final point, but I do remember one of
> the devs stated a good reason for why the present situation is what it is,
> darned if I can remember it though. Maybe one of them will chime in.
> 

I don't remember exactly either. I believe at the last discussion we were 
debating removing the logging functionality for sql backends and I almost did.

There are several issues with the transaction log and it only provides a false 
sense of security. For example it only logs transaction changes, not account 
changes or any other modification made to the data. So as a recovery tool it's 
only marginally useful. Worse, it will restore bad transactions if business 
features are used. And probably there are several other issues with it.

Given these issues I think I should have proceeded with removing the logging 
for the sql backend after all. As a whole I think this logging is in dire need 
for a redesign. Given the future ideas the dev team has with the xml backend 
(on load convert it internally into an sqlite db as long as it's open), it's 
probably best to hold of on that one though. I think a lower level 
implementation (on the sql transaction level) has a better future.

But that's only tangential to the proposal of moving the backup and log files 
someplace else.

That is also not a new idea. I have also suggested this in the past.

> >> I understand the usefulness of the log files, but why aren't they written
> >> to the temp folder? Or better yet, why aren't they written to a
> >> user-specified location, with the temp folder as default?> 
> > This sounds like an idea that needs to be filed as an enhancement
> > request.  I'd suggest an alternative might be to create two sub-folders
> > in the folder where the data file is stored:
> > 
> > 1. ./GnuCash-Backups
> > 2. ./GnuCash-Logs
> > 

Using subdirectories is one strategy, though I would not suggest the split 
above.
 I'd go for one subdirectory per data file (people sometimes forget you can 
have more than one book). If your book is called MyBook.gnucash, the related 
subdirectory could for example be called MyBook.history. And then we store all 
related files in there. We could also think a bit broader and extend the 
usefulness of this directory to also hold other associated files. In that case 
a name like MyBook.extra could make more sense. In addition as logging also 
happens for the sql a

I also see another approach: gnucash already keeps metadata in GNC_DATA_HOME. 
We could choose to store logfiles and backups in there as well. They are used 
relatively infrequently so there's no need to have them clutter the directory 
of the main data file.

Regards,

Geert




More information about the gnucash-user mailing list