Dipende.
In primo luogo, se si dispone di un database molto grande che si estende su più macchine, allora tutto (non solo l'aggiornamento del database) sarà doloroso. (non importa quanto hai pianificato in anticipo).
In secondo luogo, l'aggiornamento di un database NON è solo una questione di database, ma dipende anche dal sistema più grande di cui fa parte il DB. Ciò include anche l'implementazione del database (molti server di database, più data center, setup master-slave, ecc.)
Il dolore può essere alleggerito architetturando i componenti del sistema in modo tale che tutti abbiano una sorta di "cognizione" dell'evento di cambiamento dello schema DB. Ciò significa che l'intero sistema deve essere tollerante alle modifiche dello schema e può rispondere ad esso in modo "sano".
Puoi consultare una utility sviluppata da Facebook per affrontare gli aggiornamenti dello schema MySQL.
Inoltre, esistono best practice standard come trasformare il master in sola lettura, apportare modifiche agli slave o alla copia di sviluppo, ecc.
In ogni caso, avere un backup completo e un'ampia suite di test è un MUST. Solo allora, puoi apportare modifiche in modo sicuro e sicuro.