MoneyDance Backup/Restore Problems

I was importing some OFX files and I noticed some corruption in my account register for a couple of accounts. No big deal I thought, I’ll just restore from a backup….

What a painful experience that was. Here’s the solution I came up with that finally worked for me:

Note: This is with MoneyDance 2015.6 on Linux, although it should apply to other OSes as well

1. Figure out where your backups are stored. If you’re not sure, go to File menu -> Preferences -> Backup tab and you should see this:

backup settings
Backup config dialog

2. Next, open a file explorer and navigate to that directory. Choose a backup to restore and copy it somewhere else.  For this example, I will use the file moneydance.2016-03.24.moneydancearchive and /home/dave/mdversions/2016-03-05 for the “somewhere else” directory

3. Rename the file, adding “.zip” to the end:

4. Unzip the archive file.  You should now see a moneydance.moneydance directory in /home/dave/mdversions/2016-03-05

5. Now we need to disable dropbox.  Otherwise, as soon as you load the backup, MoneyDance will go crazy trying to sync and you’ll end up with tons of duplicate entries in your accounts.  To do this, login to dropbox, select your name in the upper right, choose settings, then go to the Security tab.  Look under “Devices” and “Apps Linked” and delete anything that may be uploading data to MoneyDance.
Note: Changing your dropbox password will not work, you have to do remove the devices and apps.

6. Go back to Moneydance.  Select File menu -> Open -> Open other…

Open other menu
Open other menu

7. A file dialog will appear.  Now the tricky part, selecting the backup (no, I’m not kidding).  Go into /home/dave/mdversions/2016-03-05 and click moneydance.moneydance once.  Your file dialog should look like this:

Correct way to select the backup.  Note that Selection=/home/dave/mdversions/2016-03-05 and right below that is moneydance.moneydance.  If you double click moneydance.moneydance by accident, “Selection:” will have nothing next to it which is incorrect.

8. Hit Ok and wait.  It took about 20 seconds for the file decryption password dialog to appear.  If you did something wrong in the previous step, then nothing happens.  No error dialog, nothing.  This is quite aggravating.

9. If you are sure that you did everything in step 6 and still nothing happens, try creating a new dataset, then loading the backup.  Create the new dataset by doing File menu -> New… then Next, Finish.  Then go back to step 5 and try to load the backup again.

10. If, after restoring the backup, blue dots start flashing next to each account like crazy, that means dropbox was still enabled somehow.  The restored backup is likely corrupt with duplicate transactions.  Go back to the first step and start over.

11. If you backup restored properly and everything looks good, congratulations!  Note you now need to reinstall any plugins you were using.  Then re-activate dropbox in MoneyDance.  Clear all data from any mobile apps you are using and then setup those up to sync with MoneyDance again so they all pull data from the MoneyDance program itself.

Outstanding questions?
Where is my data stored now?

Overall, I’m very disappointed with this experience. I consider myself a relatively patient person, and I was even calm during the whole MoneyDance 2015 fiasco. But not being able to restore a backup quickly is a major issue for any type of financial management software. I understand Infinitekind is a small software development company (not as small as me!), but this really needs improvement.

As I’m writing this, I noticed MoneyDance 2015.7 was released about two weeks ago.  Looks like the file load dialog issue could be fixed.  But I suspect the majority of these pain points still exist

Hope this helps someone else, I spent a lot of time figuring this out for myself.

Please share your thoughts and experiences.

MoneyDance Plugin Upgrade Notes

With the release of MoneyDance 2015, Infinite Kind changed the API that plugins must use to extend MoneyDance.  There is some documentation, but I have’t found a comprehensive “plugin upgrade guide” so I decided to document some items here.  Here are the steps to upgrade a 2014 or earlier plugin to 2015+:

  1. Download the new development kit from Infinitekind developer and replace your existing moneydance api jars with the new ones.
  2. In meta_info.dict add   “minbuild” = “1000”
  3. The RootAccount class is no more.   getRootAccount() now returns a simple Account object
  4. The Account class no longer implements/extends IncomeAccount or ExpenseAccount.  You now call getAccountType() which returns an enum indicating Income, expense, etc
  5. In order to access root account specific objects (BudgetList, etc), you will need to replace  getRootAccount() with getCurrentAccountBook()
  6. You will likely get unresolved class errors for various MoneyDance classes.  It appears the high level package the package has been moved to com.infinitekind.moneydance.  Best to delete your old imports and try to auto-import against the new api jar  For example: Budget, BudgetList
  7. Many classes that were in the com.moneydance.awt package have been moved to com.moneydance.util . For example: CustomDateFormat
  8. Replace all calls to setDirty() with syncItem()

Other helpful resources:

MoneyDance 2015 Javadoc