Hi Yarek, There are no problems adding or deleting slots. The semantics are basically the same as redefining slots for standard classes. You can change the type of a slot (e.g. cached, index, etc) without any data loss. If you change the name or drop a slot the data associated with that is lost.
Currently I don't have a mechanism to handle the general case along the lines of update-instance-for-redefined-class that will work with objects on the persistent heap (not that there isn't a way to do this, I just haven't done it yet). For now, the fool-proof method is to only add slots, copy or modify any data, then delete them. This is probably a good discipline anyway if you're making schema changes against live databases. I'll also be adding some default "are you sure you want to throw away all your data?" messages into Elephant at appropriate places for 1.0. This will help you be conscious about when you are likely to be throwing data away. Ian On Jan 8, 2009, at 7:31 PM, Yarek Kowalik wrote: > In an evolving site there is a fair chance of adding/changing/ > deleting slots from a class. What are good practices with respect > to these actions in Elephant? Are there specific steps that need to > be taken to migrate data from an old class definition to a new class > definition? Any gotchas one needs to be aware of? > > BTW, I've read several emails about data migration going by, can > someone please clarify what exactly "data migration" is? Is it > migrating between stores, or different versions of a class? > > Yarek > _______________________________________________ > elephant-devel site list > elephant-devel@common-lisp.net > http://common-lisp.net/mailman/listinfo/elephant-devel _______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel