[ZODB-Dev] undo (and storage interface) brokenness

Martin Aspeli optilude+lists at gmail.com
Wed Dec 23 21:09:28 EST 2009

Hanno Schlichting wrote:

>> What is zc.beforestorage?
> Look at its PyPi page http://pypi.python.org/pypi/zc.beforestorage

Thanks for the pointer!

> In practice it hardly ever works. Relying on it as a substitution for
> backup or tested restore procedures is dangerous.

I know that a procedure based on backups and something like 
zc.beforestorage is going to be better. It's also an order of magnitude 
more difficult for people to set up and recover from. I think we'd see a 
pretty big backlash if we just removed the Undo feature, imperfect 
though it is.

Unfortunately, I think the people most likely to have used it in a pinch 
are less likely to be reading this list.

If the current API is broken, we should fix it. If that means fixing 
some of the UI in Zope to use a new API, that's OK too. Few people will 
have customised this or relied on the "old" API.

If we had to say you only get step-by-step undo from the most recent 
transaction, then that'd probably be OK too. In this case, we should 
have a UI that lets you specify a number (undo N transactions) or a 
limit (undo up to and including transaction X). I think people 
understand that undoing a single transaction that's not the most recent 
one is error-prone anyway.


Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book

More information about the ZODB-Dev mailing list