Thanks, that's exactly what I was looking for! I'm not in that situation, but it's good to know that solutions exist.
Amir
On Wed, 17 Nov 2010 09:48:06 -0600 Chris Muller asqueaker@gmail.com wrote:
Hi Amir, for inst-vars of a class persisted in Magma, it just works like standard Smalltalk, please see:
http://wiki.squeak.org/squeak/5602
Indexes on MagmaCollections may be removed with the #removeIndex message (within a commit, of course).
Does this answer your question?
If, by "live" you mean a production environment, then you will want to practice first on a production copy (you may use #fullBackup to make a copy of production while it is live without disruption of service). Adding new indexes to a large collection can take some time, of course, and the collection cannot be updated while that takes place, so you may want to build an entirely new MagmaCollection "off to the side" (but still in the same db) so that, once built, you can "switch over" to it in a single commit by simply replacing your pointer to the old with the new.. However, that would require that you keep track of any updates that came in to the collection being replaced *during* the index rebuild...
- Chris