[GNC] File Format Documentation, v. 2

David T. sunfish62 at yahoo.com
Thu Aug 16 16:00:11 EDT 2018


I’ve attempted to incorporate the suggestions that others have made for the section on file storage formats, and I attach the resulting version 2 for further consideration. Keep in mind that this is not meant to be an encyclopedic coverage of the topic; it’s meant to outline the choices. I expect further detail to reside on the wiki, or be placed in other places in the documentation.

Cheers,
David

P.S. The table layout doesn’t come through, but will be in the final version…


————————————

2.5 Storing your financial data
2.5.1 Overview
GnuCash offers several formats for storing your financial data. The default file storage format is XML, while SQL storage is available in SQLite, MySQL, and PostgreSQL formats. Users can choose a file format from the File→Save and File→Save As dialogs.
The XML storage format is a text file that is compressed with gzip, which is a preference that is set at Edit→Preferences→General→Use file compression. SQL storage is available via the DBI back end; use of MySQL and PostgreSQL requires installation of those DBMS packages as well as additional DBI drivers.
Note: users can change the format at any time by using File→Save As. This will create a copy of the data file in the selected format.

Storage Comparison
Each storage format has benefits and shortcomings that the user should consider for their needs and abilities. See the Storage Comparison Table below for further details.
The XML format is the most stable and established, and for this reason, it is recommended for most users. SQL storage was added for the 2.4 release and has become an increasingly popular choice for users, but can require experience with DBMS applications.
Note: Use of a SQL back end for storage implies to many that GnuCash has fully implemented DBMS features, including multi-user and incremental data manipulation.  However, GnuCash does not currently implement these features, although it is a long term goal of the development team. 

Storage Comparison Table

	
XML
SQLite
MySQL
PostgreSQL
Installation
Default
libdbi - 1
libdbi
libdbi
File extension
gnucash
gnucash
N/A - 2
N/A - 2
Additional software
None
None
MySQL
PostgreSQL
Additional expertise 
None
None
DBMS
DBMS
Compression
Y
N
N
N
Save on command
Y
N
N
N
Save on commit
N
Y
Y
Y
Uses log files
Y
N
N
N
Multi-user
N
N
N
N

1 - SQLite relies on libdbi, but is available by default on Mac OS and Windows. Linux users may need to manually install libdbi drivers for SQLite.
2 - MySQL and PostgreSQL place data in their own storage.


More information about the gnucash-user mailing list