Saya mengelola aplikasi web PHP / MySQL open source yang digunakan oleh beberapa sekolah K-12 dan beberapa perguruan tinggi. Saya juga satu-satunya pengembang proyek. Walaupun dulunya lebih dari sekadar pengunduhan sumber dari aplikasi yang dihosting oleh atasan saya, saya telah bekerja selama setahun terakhir untuk menjadikannya sebuah proyek sumber terbuka "nyata", dengan dokumentasi, rilis bernomor, changelog publik, dll.
Saya sedang mencari cara untuk meningkatkan proses peningkatan, dan salah satu area yang berpotensi menyakitkan (terutama untuk sekolah yang kekurangan tenaga TI) adalah perubahan skema database antara rilis. Mereka tidak cenderung sering terjadi atau menjadi perubahan drastis tetapi saya akan menghargai saran tentang prosesnya.
Saat ini, saya mempertahankan skrip instalasi SQL dasar untuk mengatur database dalam instalasi baru. Ini termasuk skema lengkap untuk rilis saat ini; tidak diperlukan tindakan lebih lanjut untuk pemasangan baru. Perubahan yang terjadi di antara rilis disimpan dalam upgrade-$releasever.sql
skrip, dan perlu untuk menjalankan semua skrip pemutakhiran secara bertahap untuk setiap rilis yang dilompati.
Skrip shell tidak cocok, karena banyak pengguna kami beroperasi pada host tanpa akses shell. Karena prioritas lain, skrip pemasang / pemutakhiran berbasis PHP yang rumit tidak mungkin terwujud. Namun, saya ingin melakukan sesuatu dengan skrip PHP berbasis browser untuk menyederhanakan upgrade. Saran tentang cara mendekatinya?