Hi,
i have one Gemstone 3.1.0.4 with load some package with relative classes and instances data. Now i need to port into it a new version of this package with some change. The old classes and their data do not interest me, i can erase it before load the new version. I think to erase it for don't have class version migrations problems ecc. ecc. My questions is : what i need to do to erase the old classes and the relative data? It's sufficient: 1 ) delete the reference to the old data 2 ) unload the old package into GLASS Monticello browser and after: 3 ) load the new packages version 4) create the new instances data Thanks for any considerations, Dario _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
Dario,
One approach to clean up a repository is to remove all indexes (IndexManager removeAllIndexes), then remove entries from your user’s SymbolList (typically UserGlobals). After that a full MFC and reclaimAll should remove all the objects. Alternatively, you could just start with a fresh extent. Is there anything in the repository that you want to save? James On Jun 3, 2014, at 7:38 AM, Dario Trussardi <[hidden email]> wrote: > Hi, > > i have one Gemstone 3.1.0.4 with load some package with relative classes and instances data. > > Now i need to port into it a new version of this package with some change. > > The old classes and their data do not interest me, i can erase it before load the new version. > > I think to erase it for don't have class version migrations problems ecc. ecc. > > My questions is : what i need to do to erase the old classes and the relative data? > > It's sufficient: > > 1 ) delete the reference to the old data > > 2 ) unload the old package into GLASS Monticello browser > > and after: > > 3 ) load the new packages version > > 4) create the new instances data > > > Thanks for any considerations, > > Dario > _______________________________________________ > Glass mailing list > [hidden email] > http://lists.gemtalksystems.com/mailman/listinfo/glass _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
In reply to this post by dario trussardi
Dario, What you suggest should work okay, except that you need to insert an MFC after the classes have been deleted and to avoid class migration you have to wait until the dead objects have been reclaimed and for the dead objects to be reclaimed you have to make absolutely certain that there are no references (direct or indeirect) to the instances of the classes that you are dropping which means at a minimum you need to shut down all of the maintenance/seaside vms/gemtools before running the mfc and even then you may not have caught all references to the objects ... so at the end of the day, you might still end up migrating the old class versions ...
If you are simply trying to avoid the length of time that the migrations might impose, you might consider using GsDeployer class>>bulkMigrate:. The bulk migrate makes a "migrates all of the classes that have changed in a single pass" which means that it is probably faster than an MFC:
GsDeployer bulkMigrate: [ "load code" ]. If the new version moves instance variables around and there are actual errors during the loading of the code, then a bulk migrate preceded by the explicit removal of the problem classes is probably sufficient. It still makes sense to drop all of your data structures...
Dale On Tue, Jun 3, 2014 at 7:38 AM, Dario Trussardi <[hidden email]> wrote: Hi, _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
Free forum by Nabble | Edit this page |