Administro una aplicación web PHP / MySQL de código abierto utilizada por algunas escuelas K-12 y algunas universidades. También soy el único desarrollador del proyecto. Si bien solía ser poco más que una descarga de origen de una aplicación que aloja mi empleador, he trabajado durante el último año para convertirlo en un proyecto de código abierto "real", con documentación, lanzamientos numerados, registros de cambios públicos, etc.
Estoy buscando mejorar el proceso de actualización, y una de las áreas potencialmente dolorosas (especialmente para las escuelas hambrientas de experiencia en TI) está en los cambios en el esquema de la base de datos entre versiones. No suelen ocurrir con frecuencia ni son cambios drásticos, pero agradecería sugerencias sobre el proceso.
Actualmente, mantengo un script de instalación SQL base para configurar la base de datos en una nueva instalación. Esto incluye el esquema completo para la versión actual; No se requiere ninguna otra acción para una nueva instalación. Los cambios que ocurren entre versiones se almacenan en upgrade-$releasever.sql
scripts, y es necesario ejecutar todos los scripts de actualización de forma incremental para cualquier versión que se haya omitido.
Los scripts de shell no se ajustan bien, porque muchos de nuestros usuarios operan en hosts sin acceso a shell. Debido a otras prioridades, es poco probable que se materialice un complejo instalador / script de actualización basado en navegador PHP. Sin embargo, me gustaría hacer algo con un script PHP basado en navegador para simplificar las actualizaciones. ¿Sugerencias sobre cómo abordarlo?