On 12/18/06, Christian Theune <ct@gocept.com> wrote:
a) provide a generation to convert old data structures
Since we tend to work with high-availability issues at ZC, I'm hesitant to go this route; expensive generations that affect large portions of a database can be very difficult to run without a significant maintenance window. For things like this that can affect a large number of objects that otherwise wouldn't be written to, I'm generally in favor of avoiding modifying the object and making the code compatible with the old data structures. Yes, this carries it's own risk (failure to be compatible) and cost (maintaining support for the old structures), but that can be mitigated through tests.
b) keep the existing interfaces working
I suspect this will be easy with zope.file, since it was specifically designed to work with blobs. The interface doesn't lend itself to having reasonable security declarations declared through ZCML (since the open() method is used for both read and write access), but that's a different failing (which I'd be happy to see fixed with an improved interface). -Fred -- Fred L. Drake, Jr. <fdrake at gmail.com> "Every sin is the result of a collaboration." --Lucius Annaeus Seneca