As a side effect we came up with the following little snippet:
from ZODB.DemoStorage import DemoStorageIf you put this code into a file called custom_zodb.py in your INSTANCE_HOME, your Zope will start up with its normal file storage, but wrapped in a demo storage.
from Zope2.App.startup import getConfiguration
# Read the database configuration from zope.conf
dbtab = getConfiguration().dbtab
# Get the root storage and open it
base_storage = dbtab.getDatabase('/', is_root=1)._storage
# Wrap an in-memory demo storage around our normal storage
Storage = DemoStorage(base=base_storage)
With this file in place all changes you do will only be written and kept in memory. Once you restart the server, you are back to the state of the Data.fs on your file system.
The next time you want to experiment with a large customer Data.fs, show a demo based on some predefined content, provide a Live-CD or host a demo site, this might come in handy. If you want to feel even more on the save side, opening the underlying storage in read-only mode or ensuring that the operating system level user doesn't have write permissions to the file could be additional measures to take.
