O que eu costumo fazer é armazenar cada
ALTER TABLE
execução na(s) tabela(s) de desenvolvimento e aplicá-las à(s) tabela(s) de destino sempre que necessário. Existem maneiras mais sofisticadas de fazer isso (como ferramentas de comparação de estrutura e outras), mas acho que essa prática funciona bem. Fazer isso de forma manual, passo a passo, também ajuda a evitar alterações ou destruição acidental de dados por alterações estruturais que alteram o tipo ou o comprimento máximo de um campo.