La respuesta corta es ALTER TABLE (la respuesta detallada de Joe describe cómo se puede automatizar).
La respuesta más larga depende de cómo desee manejar las reversiones, porque los cambios de esquema (DDL) no son transaccionales en MySQL (lo son, en PostgreSQL). Por lo general, los cambios en el esquema y el código de la aplicación ocurren juntos: son interdependientes. Si encuentra un problema crítico al implementar un cambio (aunque debería esperarse que un proceso de “preparación” lo encontrara antes) entonces necesitaría la capacidad de retroceder en el cambio.
Los retrocesos se pueden manejar de varias maneras, desde menos a más sofisticados:
- ¿Cómo se calcula el LTV para empresas (como Dropbox y Box) que tienen segmentos de consumidores y empresas? ¿Mantiene los LTV separados para cada segmento de usuario?
- ¿Qué tan costoso es obtener el cumplimiento de SOC-1?
- ¿Cuáles son las mejores empresas SaaS empresariales?
- ¿Qué aplicación basada en SaaS es la mejor para administrar un salón de belleza?
- ¿Cuál sería su estrategia para implementar una solución SaaS dentro de una organización legal? ¿Cuáles serían los requisitos del sistema para más de 1,000 empleados?
- restaurar volcado (= tiempo de inactividad)
- usar una instantánea del sistema de archivos (= menos tiempo de inactividad)
- use ALTER TABLE para deshacer (más complicado, propenso a errores)
- tener más de un servidor de aplicaciones y aislar una instancia de producción para probar el cambio hacia adelante. Esto también tiene una gran ventaja, ya que algunos cambios en línea afectan al servidor o son muy lentos, como agregar índices. La reversión no afecta la producción, simplemente bote y reconstruya las instancias de prueba. (Esto es esencialmente un proceso de “puesta en escena” si la instancia de prueba no está expuesta al mundo).
- etc.
También hay esto, pero aún no lo he estudiado. http://www.slideshare.net/jonoxe…