there should be a way to create (starting from "nothing") and completely destroy (resulting in "nothing") a storage for whoosh without having storage-specific code in the application.
e.g. for FileStorage, one needs to first mkdir(index_dir) in the application, before creating a FileStorage object.
the FileStorage.clean method is not helpful here (although it looks a bit like it was intended for this), because one can not create a FileStorage object for a non-existing index_dir as it raises an exception in init then.
also, clean() is a bit unclean (hah!), because it somehow is a bit mixing up creation (see mkdir) and (partial) destruction (removal of all index files).
there is no way to completely destroy a FileStorage though, no rmdir, no rmtree, so one can not get completely rid of a storage to create a fresh one at the same place.
note: for gae (DatastoreStorage), clean() does nothing at all.
See there for some troubles this is creating on the application level: