Gestisco un'applicazione web open source PHP / MySQL utilizzata da alcune scuole K-12 e alcuni college. Sono anche l'unico sviluppatore del progetto. Sebbene in passato fosse poco più che un download sorgente di un'applicazione ospitata dal mio datore di lavoro, nell'ultimo anno ho lavorato per trasformarlo in un "vero" progetto open source, con documentazione, pubblicazioni numerate, log pubblici, ecc.
Sto cercando di migliorare il processo di aggiornamento e una delle aree potenzialmente dolorose (soprattutto per le scuole affamate di competenze IT) è nelle modifiche allo schema del database tra le versioni. Non tendono ad accadere spesso o sono cambiamenti drastici, ma apprezzerei i suggerimenti sul processo.
Attualmente, mantengo uno script di installazione SQL di base per configurare il database in una nuova installazione. Ciò include lo schema completo per la versione corrente; non sono necessarie ulteriori azioni per una nuova installazione. Le modifiche che si verificano tra le versioni sono memorizzate negli upgrade-$releasever.sql
script ed è necessario eseguire tutti gli script di aggiornamento in modo incrementale per tutte le versioni che sono state ignorate.
Gli script della shell non sono adatti, poiché molti dei nostri utenti operano su host senza accesso alla shell. A causa di altre priorità, è improbabile che si realizzi un complesso script di installazione / aggiornamento basato su browser PHP. Vorrei, tuttavia, fare qualcosa con uno script PHP basato su browser per semplificare gli aggiornamenti. Suggerimenti su come affrontarlo?