In March of 2016, I tried again to migrate from Quicken (Windows) to GnuCash (Mac). This time it was with GnuCash 2.6.11. The motivator is that I use Quicken 2014, Q2014 is the last version to run on XP, so when Intuit expires my transaction downloads in 2017, I’ll have to purchase Windows 10 and keep running VM software.

The good:

  • They’ve added support for SQL back-ends, including MySQL and sqlite3.

The bad:

  • They treat the SQL back-end as if it were a big file. The read in the entire database at startup, just as if it were the XML data store. It loads slowly if you have 25 years of data.
  • If you download the binary version, you get SQL support, but you don’t get the Python API. If you install from MacPorts, you get the Python API, but not sqlite3. (No, you can’t successfully add sqlite3 to the MacPorts edition. I tried.) You can try a full build-from-source, but that is epically difficult and it will fail if you have MacPorts for something else.
  • The database schema isn’t fully documented. The Python API isn’t fully documented.
  • Custom reporting requires learning Scheme and Guile or write custom code against the database.
  • You have to exit GnuCash to update prices or run external reports. Only one process at a time can touch the database. Security price updates are a separate, stand-alone app.
  • It doesn’t use the price at the time of a security purchase/sale to update the price history for that security.
  • There is no way (short of the API or SQL hacking) to to import security price history from Quicken to GnuCash.
  • Reports for portfolio tracking are… quite limited.
  • There is nothing comparable to the Quicken retirement planner.
  • After you import your Quicken QIF export, all of your securities have a price of $0 in the account overview. This means you can’t reconcile your account balances with your old Quicken balances until you figure out how to import your Quicken price history (which could include manual entry of the latest price for each security).

Options for next time:

  • Set up a Linux VM, build-from-source there, and run GnuCash in a Linux VM.