Best Practices for Project Archiving (and Restoring)

As much as I try to avoid it, I frequently find myself needing to restore an archived project back into the main database.

When this happens, it’s typically because I had previously marked the project as completed (thinking that all tasks were closed and the project finished), archived the database on my mac (to trim down the database size), and then out of nowhere a related task comes along several months later that I could not have predicted.

After experimenting with the “restore from archive” functionality in OmniFocus, I discovered that restoring from archive doesn’t just restore the data from archive, but it creates a copy of the data (the original data residing in the archive and a new copy now residing in the main database). This presents a problem when later trying to re-archive the project again after marking it “completed” a second time, since now there will be two projects in the archive with same name (and potentially different sets of tasks which have to be manually remerged together to maintain some sense of organization).

All this has left me wondering… What would other users typically do in this use case? Am I archiving too frequently? Should I create a new project instead of trying to restore the archived project? What is the best way to keep the archive clean of redundant projects and tasks?


I don’t use the automatic archiving. It does not work as I would wish. Your finding is but one issue I have with it. Otherwise, I am always too confused when completed Projects that I might want to review on routine cycles are mysteriously “gone missing”.

I manually archive Projects. The problem is, this creates a mess in the Archive file itself. For one, it duplicates multiple Folder hierarchies. For another, it is a royal pain to do. I’ve asked in feature requests spanning back … ages and ages … or at least spanning back over 5 years … that OF would fix the problems with manual archiving and build a robust manual method to archive/restore on a Project by Project basis. Take what you might from this information.


1 Like

Like @DrJJWMac, I manually archive large projects that I might revisit or turn into a template with Chris Suave’s awesome script.

I use OmniOutliner Pro. I will change the view settings for the completed project so I see All tasks, then I use @curt’s tremendously helpful OmniOutliner export script to send the view to OmniOutliner where I can further manipulate it, store it, and later re-import to OmniFocus with File > Import OmniOutliner Document. Only that project is restored, no defunct folder views I might have abandoned/dropped/completed.

For me, the automatic OF archive is like a specific OS X Time Machine plugin that allows me to search for something unique and specific in past databases. For projects that I revisit regularly or are important enough for me to care about reviving in the future, I save to OmniOutliner.


Thanks for the tips! I might rethink how I use the auto archive feature, in favor of manual archiving as well… especially considering @TheWart 's great idea to use OmniOutliner as a cleaner place for archiving. I hadn’t considered that option!

Appreciate the help

this is important, what else could OF be doing that’s more important than keeping a backup of our data, i.e., the archived material?? can’t be TOO many things to do in 5 years that’s more important??

I think OF spent 1 minute of thought, and 5 mins creating the code for the archive feature. it’s not even easy to restore, how do you do it, I am on google and ended up on this page just trying to restore an old project that ‘got ripped in half’ due to the archive feature, who wants to archive actions more than projects??

come on, of is amazing, the staff are awesome also at responding to any problems i have.

the archive idea is great, just use the time now OF to master the archive feature don’t just leave it there.

i could just choose not to archive but things get slow if i don’t on the iphone, so…

I’m struggling to find my own strategy for archiving.

To maintain historical record and to easier refer to earlier projects, I desperately need to preserve creation and, ideally, modified dates. And, of course, archiving only by projects can make sense, not by individual actions. And from time to time I will likely need to i archive a project or two to continue working on it.

Emailed the support, but preserving dates when archiving is not in their foreseeable roadmap.

Has anyone tried to solve a similar puzzle? What is your approach?

My current plan is to be able find way to merge two databases which preserves dates. Given that, I could:

  1. Make first archive the following way:

    • make a copy of my active database
    • remove all active projects from that copy–this will give me an archive
    • remove all completed projects from my active database
  2. Unarchive a project the following way:

    • merge entire archive back into whole database
    • split the active database with the above process, but keeping the un-archived project in the active database
  3. Make subsequent archives as in 1., but every time to a separate archive database

Going to start trying this approach to merging: Manually merging two archives? [Yes, see thread]

Please share if you know a better approach.