No file or file required ?

Yawar Amin yawar.amin at
Fri Dec 18 18:33:49 EST 2009

On 12/18/09 7:06 AM, Geert Janssens wrote:
> [...]
> "Enforcing" a "file" to be selected from the start, or disallowing any action 
> if no "file" is available is one way to deal with this. In case of a db "file" 
> or an sqlite "file", all changes are written to the backend immediately, for 
> the xml "file" a separate log is kept to which all changes are written 
> immediately as well. So indeed, having a file available at all times helps to 
> prevent data loss.

MS Access forces the user to either create a new DB or open one on
startup. So does KeePass/X.

> [...]
> So for GnuCash this could translate as: allow the user to have unsaved data 
> (start with option --nofile or as a result of the first run). In this case, 
> GnuCash should save the changes to a file anyway in a location that is 
> determined a build time (likely somewhere in a tmp directory). This log can be 
> in the old xml log format, but when sqlite becomes the new default file 
> format, making the GnuCash internal log file an sqlite file would make more 
> sense. Should GnuCash have to recover from a crash, it could use this internal 
> log for that purpose.
> What do others think ?  

I think this paradigm works well when users start up the program, and
_typically_ open and close several documents throughout the `lifetime'
of the program. But when they typically only use one document the whole
time they're using the program, it makes more sense to force them to
choose or create that document up-front. I think this neatly describes
what people do with QuickBooks, MS Access, KeePass, and GnuCash. Of
course there are probably other reasons, like the data loss risk you


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 258 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the gnucash-devel mailing list