<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Thanks. This is helpful.<DIV><BR class="khtml-block-placeholder"></DIV><DIV>- Waldo</DIV><DIV><BR><DIV><DIV>On Dec 29, 2005, at 10:56 AM, Dan Knapp wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV> Internally, Elephant stores a list of the slots in each object, by their names. So, the new slot will be unbound in the existing objects - you can check using slot-bound-p. If you delete a slot, the old values for objects that had it will still be in the database, but they will be harmless. New objects will always be stored according to the definition that's loaded at the time. If you want to rename a slot, you'll have to write migration code to copy everything from the old slot to the new one.</DIV><BR><DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Helvetica" size="5" style="font: 18.0px Helvetica">-- Dan Knapp</FONT></DIV> </DIV><BR><DIV><DIV>On Dec 29, 2005, at 1:47 AM, Waldo Rubinstein wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Is Elephant friendly with class evolution? For example, if I create a CLOS object with, say 5 fields, and store some instances in an elephant DB and then the CLOS definition of the class changes to add a sixth field. What will happen to the existing five objects when retrieved? Will new objects be stored with the new field definition?</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Thanks,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Waldo</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">elephant-devel site list</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="mailto:elephant-devel@common-lisp.net">elephant-devel@common-lisp.net</A></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="http://common-lisp.net/mailman/listinfo/elephant-devel">http://common-lisp.net/mailman/listinfo/elephant-devel</A></DIV> <BR class="Apple-interchange-newline"></BLOCKQUOTE></DIV><BR><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">elephant-devel site list</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="mailto:elephant-devel@common-lisp.net">elephant-devel@common-lisp.net</A></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="http://common-lisp.net/mailman/listinfo/elephant-devel">http://common-lisp.net/mailman/listinfo/elephant-devel</A></DIV> </BLOCKQUOTE></DIV><BR></DIV></BODY></HTML>