[Glass] migrate problem
Johan Brichau
johan at yesplan.be
Thu Jan 16 11:24:31 PST 2014
Norbert,
I had the problem of 'double classes' in the past as well when I did loading via Monticello in gemtools rather than in topaz and using the GsDeployer.
I retained the following script to fix that (which I believe was whipped up by Dale at that time)
|classesWithOldSuperclasses|
classesWithOldSuperclasses := Set new.
Smalltalk allClasses do:[:s |
Smalltalk allClasses do:[:c |
(c superclass name = s name and:[(c superclass = s) not]) ifTrue:[classesWithOldSuperclasses add: c]]].
classesWithOldSuperclasses do:[:c | Transcript show: c name;cr. c definition evaluate]
Hope it helps
Johan
On 16 Jan 2014, at 20:18, Norbert Hartl <norbert at hartl.name> wrote:
> Dale,
>
> that didn’t work. Now I have some of the classes doubled and some tripled. I need to try a few more things. I was just wondering that the migrateTo: does not work as expected. I did this a few times in the past and it always worked like that. Or I just can’t remember correctly.
>
> Norbert
>
> Am 16.01.2014 um 17:37 schrieb Dale Henrichs <dale.henrichs at gemtalksystems.com>:
>
>> Norbert,
>>
>> I am not a migration expert and I haven't read the docs (yet), but in reading the code, I think that you are supposed to send the #migrate message to instances of your class ...
>>
>> Have you looked at GsDeployer? I think the following will do a pretty good job of migrating the instances for you:
>>
>> GsDeployer bulkMigrate: ["add instance variable to class"]
>>
>> in fact I think right now you should be able to do:
>>
>> GsDeployer bulkMigrate: ["empty block"]
>>
>> and get "pending migrations performed"....
>>
>> Dale
>>
>>
>> On Thu, Jan 16, 2014 at 7:25 AM, Norbert Hartl <norbert at hartl.name> wrote:
>> I have one class hierarchy that has between 40 and 50 Mio. instances. Now I needed to add an instVar to the root of the hierarchy. Doing it with gemtools I switched off auto migration and loaded the monticello package containing the changed. But now I have problems migrating the instances manually.
>>
>> COEvent allSubclasses size
>>
>> gives 5 while
>>
>> COEvent classHistory first allSubclasses size
>>
>> gives 23. A
>>
>> COEvent classHistory first migrateTo: COEvent
>>
>> didn’t do the trick. And
>>
>> COEvent migrate
>>
>> gives me
>>
>> a MessageNotUnderstood occurred (error 2010), a Metaclass3 does not understand #’migrationDestination'
>>
>> I’m using
>>
>> GemStone version ‚3.1.0.2'
>>
>> Any hints,
>>
>> Norbert
>>
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com
>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>
>>
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass
More information about the Glass
mailing list