Je gère une application web open source PHP / MySQL utilisée par quelques écoles K-12 et certains collèges. Je suis également le seul développeur du projet. Alors que ce n'était plus qu'un téléchargement source d'une application hébergée par mon employeur, j'ai travaillé au cours de la dernière année pour en faire un "vrai" projet open source, avec de la documentation, des versions numérotées, des journaux des modifications publics, etc.
Je cherche à améliorer le processus de mise à niveau, et l'un des domaines potentiellement douloureux (en particulier pour les écoles affamées d'expertise informatique) concerne les modifications du schéma de base de données entre les versions. Ils n'ont pas tendance à se produire souvent ou à être des changements radicaux, mais j'apprécierais des suggestions sur le processus.
Actuellement, je gère un script d'installation SQL de base pour configurer la base de données dans une nouvelle installation. Cela inclut le schéma complet de la version actuelle; aucune autre action n'est requise pour une nouvelle installation. Les modifications qui surviennent entre les versions sont stockées dans des upgrade-$releasever.sql
scripts, et il est nécessaire d'exécuter tous les scripts de mise à niveau de manière incrémentielle pour toutes les versions qui ont été ignorées.
Les scripts shell ne conviennent pas, car beaucoup de nos utilisateurs fonctionnent sur des hôtes sans accès shell. En raison d'autres priorités, il est peu probable qu'un script d'installation / mise à niveau complexe basé sur un navigateur PHP se matérialise. J'aimerais cependant faire quelque chose avec un script PHP basé sur un navigateur pour simplifier les mises à niveau. Des suggestions sur la façon de l'aborder?