Ich verwalte eine Open-Source-PHP / MySQL-Webanwendung, die von einigen K-12-Schulen und einigen Colleges verwendet wird. Ich bin auch der einzige Entwickler des Projekts. Während es früher kaum mehr als ein Quelldownload einer Anwendung war, die mein Arbeitgeber hostet, habe ich im letzten Jahr daran gearbeitet, daraus ein "echtes" Open-Source-Projekt mit Dokumentation, nummerierten Veröffentlichungen, öffentlichen Änderungsprotokollen usw. zu machen.
Ich möchte den Upgrade-Prozess verbessern, und einer der potenziell schmerzhaften Bereiche (insbesondere für Schulen mit IT-Fachwissen) sind Änderungen am Datenbankschema zwischen den Releases. Sie treten nicht oft auf oder sind drastische Änderungen, aber ich würde mich über Vorschläge zu diesem Prozess freuen.
Derzeit verwalte ich ein SQL-Basisinstallationsskript, um die Datenbank in einer neuen Installation einzurichten. Dies umfasst das vollständige Schema für die aktuelle Version. Für eine Neuinstallation sind keine weiteren Maßnahmen erforderlich. Änderungen, die zwischen Releases auftreten, werden in upgrade-$releasever.sql
Skripten gespeichert , und es ist erforderlich, alle Upgrade-Skripts für alle übersprungenen Releases schrittweise auszuführen.
Shell-Skripte passen nicht gut zusammen, da viele unserer Benutzer auf Hosts ohne Shell-Zugriff arbeiten. Aufgrund anderer Prioritäten ist es unwahrscheinlich, dass ein komplexes PHP-Browser-basiertes Installations- / Upgrade-Skript zustande kommt. Ich möchte jedoch etwas mit einem browserbasierten PHP-Skript tun, um die Upgrades zu vereinfachen. Vorschläge, wie man es angeht?