Bazı modüllerin kurulum rutinleri vardır. Genellikle bu modül için veritabanı tablolarını, değişken tablosundaki değişkenleri ve modül tarafından tanıtılan yerel ayarları kaldırır. Bu rutinler .install
bu modülün içinde yaşar .
Bu nedenle, bu modül mevcut olmadan çalıştırılamazlar. İşte mevcut adımlarımız. Sorum şu: bu daha basit ve daha etkili bir şekilde yapılabilir mi? Foo_bar modülünü kaldırdığımı varsayalım.
- RCS'de yeni bir sürüm hazırlayın, burada:
- Foo_bar öğesinin üstündeki veya üzerinde oluşturulan tüm css ve tema geçersiz kılma işlemleri kaldırılır.
- Foo_bar'a bağlı modüller için tüm css ve tema geçersiz kılma işlemleri kaldırılır.
- Bu sürümü kabul etmek için itin. Kurulumun (admin / modüllerden) üretim veritabanının son bir kopyasıyla testini yapın.
- Her şey yolunda giderse, yeni kod tabanını üretime dağıtın ve foo_bar ve onun bağımlılıklarını oradan kaldırın. Bu işlem, çeşitli modüllerde kaldırmayı başlatır ve veritabanını temizler.
- RCS'de (git), kodun gerçekten kaldırıldığı yeni bir sürüm hazırlayın.
- Bunu yanlışlıkla buna bağlı bir şey olup olmadığını test ettiğimiz yere kabul etmek için dağıtın (bazı çirkin modüller veya tema işlevleri doğrudan diğer modüllerden dosyalar içerir. En önemlisi CSS, JS veya görüntü dosyaları).
- Kabul edilirse, üretime yeni sürüm dağıtın. üretim artık temiz bir veritabanı ve temiz bir kod tabanına sahip .
Nasıl çözüleceğini göremediğim sorun, bunun her zaman iki sürüm gerektirmesidir. Drupal'da bir sürüm sitenin çevrimdışı olmasını gerektirdiğinden, bu sadece bir modülü kaldırmak için iki kez kesinti anlamına gelir. Ayrıca, profesyonel barındırma ortamlarında çok pahalı, zaman alıcı veya sinir bozucu olabilecek iki sürüm prosedürü gerektirir.
İlk yinelemede modülü kod tabanından kaldırırsak, kaldırma kancalarını çalıştıramazız ve veritabanında çok sayıda tüy bırakmaz; sadece birkaç tablo değil, çoğunlukla değişkenler ve yerel ayarlar. Modülü kod tabanından kaldırmazsak, kod tabanı eski, kullanılmayan kodla büyüyecektir; bu, performans yükü vermez, ancak kodun bakımını zorlaştırır.
Nasıl anlaştın onunla birlikte?
[değiştir: dağıtımın genellikle zor bir prosedür olduğu hakkında not eklendi]