Simplify the migration upgrade function with late static binding