Birkaç K-12 okulu ve bazı kolejler tarafından kullanılan açık kaynaklı bir PHP / MySQL web uygulamasını yönetiyorum. Ayrıca projenin tek geliştiricisiyim. İşverenimin barındırdığı bir uygulamanın kaynak indirme işleminden biraz daha fazlası olsa da, geçen yıl bunu dokümantasyon, numaralı sürümler, kamu değişim günlükleri vb. İle "gerçek" bir açık kaynak projesine dönüştürmek için çalıştım.
Yükseltme sürecini iyileştirmeye çalışıyorum ve potansiyel olarak acı verici alanlardan biri (özellikle BT uzmanlığı açlık çeken okullar için), sürümler arasındaki veritabanı şemasındaki değişikliklerde. Sık sık olma eğilimi göstermezler veya sert değişiklikler olmazlar, ancak süreç hakkındaki önerileri takdir ediyorum.
Şu anda, yeni bir kurulumda veritabanını kurmak için temel bir SQL kurulum komut dosyası tutuyorum. Bu, mevcut sürüm için tam şemayı içerir; yeni kurulum için başka bir işlem yapılması gerekmez. Sürümler arasında meydana gelen değişiklikler upgrade-$releasever.sql
komut dosyalarında saklanır ve atlanan tüm sürümler için tüm yükseltme komut dosyalarının adım adım çalıştırılması gerekir.
Shell komut dosyaları iyi bir uyum değildir, çünkü kullanıcılarımızın çoğu kabuk erişimi olmayan ana bilgisayarlarda çalışır. Diğer öncelikler nedeniyle, PHP tarayıcısı tabanlı karmaşık bir yükleyici / yükseltme komut dosyasının gerçekleştirilmesi olası değildir. Ancak, yükseltmeleri basitleştirmek için tarayıcı tabanlı bir PHP betiği ile bir şeyler yapmak istiyorum. Nasıl yaklaşacağınıza dair öneriler?