The migration is always run in the newer version of AC, on the new object. The old one doesn’t know anything about the new one. Old libpart GUIDs are listed in the migration table. When a library is loaded, all libparts’ migration tables are read and checked against placed objects.
Backward migration happens when saving as previous version .pln: the parameter list is saved with the GUID in the migration table listed at that version.
Some information about migration can be shown: in the Library Developer Menu select Log the Migration Process (then re-open the non-migrated file).
Library Platform, Software Engineer