[Glass] Grrrr cannot migrate (class rename with subclasses and with a name of a deleted class)

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Wed Aug 26 16:01:27 PDT 2015


If this technique does the job, then the monticello structures should be 
happy as well...

Dale

On 8/26/15 3:59 PM, James Foster via Glass wrote:
> Mariano,
>
> As I understand it, the class you want to remove has no instances and 
> then you want to simply rename another class. I don’t see that 
> migration is required (though we can revisit that). Consider the 
> following:
>
> Object
> - FaSecurityClosingPriceRecord (no instances)
> - SpecialSuperclass
> - - FaSecurityClosingPriceRecord2
> - - - FSCPR2a (instances)
> - - - FSCPR2b (instances)
>
> | myClass |
> UserGlobals removeKey: #'FaSecurityClosingPriceRecord'.
> myClass := UserGlobals removeKey: #'FaSecurityClosingPriceRecord2'.
> myClass _beVariantWhile: [myClass name: #'FaSecurityClosingPriceRecord'].
> UserGlobals at: #'FaSecurityClosingPriceRecord' put: myClass.
>
> This works with a basic GemStone image; I’m not sure what it does to 
> the various Monticello structures, but you can investigate it. Does 
> that do what you want?
>
> James
>
>> On Aug 26, 2015, at 3:16 PM, Mariano Martinez Peck via Glass 
>> <glass at lists.gemtalksystems.com 
>> <mailto:glass at lists.gemtalksystems.com>> wrote:
>>
>> Hi guys,
>>
>> Sorry to bother again but I really can't migrate. I tried everything, 
>> nothing worked. I admit I have a weird scenario, but still.
>>
>> - I have a class FaSecurityClosingPriceRecord which has no instance 
>> nor subclasses.
>> - I have a separate class called FaSecurityClosingPriceRecord2 (yes, 
>> don't ask please) which a special superclass and also have 2 
>> subclasses (this is a different hierarchy than  than 
>> FaSecurityClosingPriceRecord). Both subclasses do have instances.
>>
>> So...what I need to do is remove old class 
>> FaSecurityClosingPriceRecord and rename FaSecurityClosingPriceRecord2 
>> to FaSecurityClosingPriceRecord. And of course, migrating the sub 
>> instances.  I tried the following (in order)
>>
>> 1) First monticello commit only the removal of 
>> FaSecurityClosingPriceRecord. Then upload code, commit and 
>> #doBulkMigrate.
>>
>> 2) Monticello commit where I rename FaSecurityClosingPriceRecord2 to 
>> FaSecurityClosingPriceRecord (so subclasses now are subclass of 
>> FaSecurityClosingPriceRecord). And I made a copy of 
>> FaSecurityClosingPriceRecord and call it 
>> FaSecurityClosingPriceRecord2. So to sum up, I have both classes 
>> (being equal) FaSecurityClosingPriceRecord and 
>> FaSecurityClosingPriceRecord2 and just that 
>> FaSecurityClosingPriceRecord is the one that has the subclasses.
>>
>> 3) Then I tried something like:
>>
>> FaSecurityClosingPriceRecord2 addNewVersion: 
>> FaSecurityClosingPriceRecord.System commit.
>> FaSecurityClosingPriceRecord2 migrateInstancesTo: 
>> FaSecurityClosingPriceRecord.
>> FaSecurityClosingPriceRecord2 removeFromSystem.
>> But that didn't work at all.
>> So...how should be the steps I can do to make this 
>> refactor/migration? I found no example of classes with subclasses and 
>> renaming one in the middle of hierarchy in the guide, so I wonder if 
>> this is a special case or not.
>> Thanks in advance!
>>
>>
>> -- 
>> Mariano
>> http://marianopeck.wordpress.com <http://marianopeck.wordpress.com/>
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com <mailto: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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20150826/9ec469d8/attachment.html>


More information about the Glass mailing list