1. Definitely. I do this all the time.
Migration is based on the GUID of the object.
If the 'old' object is in the job but no longer in the loaded libraries, then it will migrate to the 'new' object that is in the loaded library so long as you have set up the migration scripts properly.
If the 'old' object is still in a loaded library then the migration will not happen.
2. I have never tried, but I don't see why it can't change the subtype.
As mentioned it simply swaps an object with a particular GUID to another object.
Barry.
One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11