When GnuCash updates the file/database format in some way we guard it with a feature flag. Feature flags are checked at the beginning of the session and if an unrecognized one is found GnuCash will put up a warning dialog and then open the book read-only. Care should be taken even when using such a file as it may mean that the information in the book is not being interpreted correctly by the older version of GnuCash.
Feature flags are in most cases set only when a file contains data that would be affected by the change.
The current set of feature flags is:
- Customer and vendor credit notes (requires at least GnuCash 2.5.0)
- User specifies source of 'num' field'; either transaction number or split action (requires at least GnuCash 2.5.0)
- Extra data for addresses, jobs or invoice entries (requires at least GnuCash 2.6.4)
- User specifies a 'book-currency'; costs of other currencies/commodities tracked in terms of book-currency (requires at least GnuCash 2.7.0)
- Use account GUID as key for Bayesian data (requires at least GnuCash 2.6.12)
- Use account GUID as key for bayesian data and store KVP flat (requires at least Gnucash 2.6.19)
- Use ISO formatted date-time strings in SQLite3 databases (requires at least GnuCash 2.6.20)