Birden fazla kurulumda özel modülleri yönetme


19

Birden çok site için kullanılan bazı özel modüllerimiz var. Bunlar, katkıda bulunan modüller olarak serbest bırakılamaz, örneğin müşteriye özgü oldukları için, katkıda bulunan modüller için çalışmayan varsayımlar yaparlar.

Bununla başa çıkmak için aşağıdaki olasılıkları biliyorum:

  • kopyalayıp yapıştırın. Tüm kurulumlarda modülü güncel tutmayı açıkça zorlaştırır.

  • Tek bir çok tesisli kurulum yapın, ancak bu her zaman mümkün değildir.

  • Git alt modüllerini kullanın, ancak kötü olabilirler, bunları güncellemeyi unutmak ve her zaman desteklenmemek kolaydır (örn. Pantheon)

  • Drush, ortak bir git deposundan kontrol etmek için komut dosyaları oluşturun. Bunun için AFAIK'in tüm site için drush make'i kullanmanız gerekiyor ve şu anda kullanmıyoruz.

  • http://drupal.org/project/fserver . Henüz denemedim, biri yeterince kararlı olup olmadığını biliyor mu? Proje açıklaması pek umut verici gelmiyor ve 7.x sürümü yok.

Başka bir şey / daha iyi? Neyi tercih edersiniz ve neden?


Ben bu şeyleri yapmanın yeni yolu apps ile olduğunu düşünüyorum: drupal.org/project/apps
mojzis

Yanıtlar:


10

Drush yapmak yaklaşım, sen zaten belirttiğimiz gibi, takımım kullanan versiyonu.

Şu anda siteleriniz için drush make'i kullanmamanıza rağmen, drush'ın mevcut bir siteden make dosyasını üretecek drush make-create sağladığı için bu iş akışına geçmeniz nispeten basit olmalıdır . Böylece sadece yeni siteler için buna değer gibi hissetmeye gerek yok. :)


Teşekkürler, cevabınızı kabul etmeye karar verdim. Ben, çok özel modüller ile büyük projelerde bununla en iyi nasıl başa çıkacağımı anlamaya ve bunu kullanmaya başlamadan önce iş arkadaşlarımı ikna etmeye alışkın olmalıyım;) site, örneğin sürümü güncellemenin en iyi yolu, bir siteyi yeniden oluşturmak.
Berdir

2
Herhangi bir kaynağım yoktu, bu yüzden bir tane yazdım :) drupal.stackexchange.com/questions/33403/… Tabii ki, isterseniz daha derin sorularla yorum yapmaktan çekinmeyin. :)
Letharion

1

Tüm siteler aynı sunucudaysa, symlinkmodülleri merkezi bir yerden yüklemek için veya rsyncbirden çok sunucuyla uğraşıyorsanız kullanabilirsiniz.

Bu, dosyaları dağıtma sorununu çözecektir, ancak yine de bir yükseltme başlatmanız gerekir. drushHer sitede yükseltmeyi tek tek çağıran basit bir komut dosyasıyla birlikte otomatikleştirilebilir .


0

Görünüşe göre neredeyse tüm çözümlere çok benziyorsunuz. Okuduğumda, aklıma gelen diğer iki çözüm gibi rsyncya da symlinkyine bakımı rahat değil.

Sonra git modülünü hatırladım Git Deploy aslında git submodules ile güzel bir kombinasyon.

Bu fikri henüz denemedim, ama işe yarayabilir veya en azından kendi sisteminizi yapmak için nasıl hackleneceği konusunda bazı ipuçları verebilir.


Git dağıtımı, katkıda bulunan modüllerin sürüm bilgilerini ortaya çıkarır, ancak katkıda bulunan modüllere sahip olmadığımız için yardımcı olacağını düşünmüyorum.
Berdir

0

Katkıda bulunan veya özel modüllerin her birinin ayrı bir dalda (alt modülde değil) bulunduğu tüm katkıda bulunan / özel modüller için ayrı bir git deposu kullanıyorum.

git birleştirme burada çalışır:

usta

      <-- custom
        <-- custom module 1
        <-- custom module 2    

      <-- contrib
        <-- contrib module 1
        <-- contrib module 2     

master -> sürüm

ve dalları güncellemek için bash / drush betiği



Hm. Böylece daha sonra uzaktan kumanda olarak başka bir site ekleyebilir ve oradan özel bir modül dalı içe aktarabilirim. Bu işe yarayabilir, ancak nispeten karmaşıktır.
Berdir

0

Özel geliştirilmiş modüllerimizi depolamak için Git yerine SVN kullanıyorum. Localhost'tan değişiklik yaptıktan sonra, sadece önceden tanımlanmış sunucu konumlarında "svn update" komutunu çalıştıran bash betiğini çalıştırıyorum. Bir modülü yeni bir konuma her dağıttığımda bash betiğini güncelleştiririm. Gerçekten basit bir kurulum ve sorunsuz çalışıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.