Drupal dağıtım / test / don 't-how-to-call it aracı

5 Cevap php

Setup is following: Drupal project, one svn repo with trunk/qa/production-ready branches, vhosts for every branch, post-commit hook that copies files from repository to docroots.

Sorun şudur: Drupal web sitesi genellikle kaynak kodu üzerinde ama çok DB veri (düğüm çeşitleri, ayarları, vb) değil sadece dayanır.

Ben bu versionable değişiklikleri yapmak için çözüm arıyorum. Ama veritabanındaki tüm verileri 'diffing' yerine ünite testleri demirbaşlar gibi bir şey gibi.

Versionable olmalı ve ana post-commit kanca sonra uygulanabilir içerik için SQL veri ve dosyaları ile fikstür gibi komut.

Bu amaç için yazılmış bir şey var mı, ya da belki bazı (Apache Ant gibi) inşa aracının tür veya birim test çerçeve uyarlamak kolay olurdu. Bu araç Drupal hakkında bilmek eğer komut ben variable_set() gibi şeyler, drupal_execute() böylece Ve bu, çok iyi olurdu.

Herhangi bir fikir? Yoksa yerine bu soran hemen kodlama başlamalıyım? :)

5 Cevap

Eğer zaten yazdım ki orada bazı altyapı var gibi geliyor.

Yani kodlama başlamak istiyorum! Ben şu anda bunun için özellikle iyi thats farkındayım şey yok. Varsa, ben o mevcut altyapı ile devam almak için biraz çaba alacağını düşünün. Yani kodlama başlayan gitmek için yol görünüyor.

Bu benim yaklaşımım dosya adının başında bir sürüm numarasına sahip sql düzeltme eki dosyalarını (db şema / veri yükseltme için SQL ifadeleri içeren dosyaları) kullanmaktır. Veritabanı sonra veritabanı anda hangi sürümü hakkında bilgiler içerir (Zaten bu olabilir) config bilgi ile bir tablo içerir.

Daha sonra otomatik yama uygulamak için bir dizi yaklaşım alabilir. Bir veritabanı olduğunu ve daha sonra son sürümü için bir yama db de olan versiyonu daha yeni, ve (o / bunları uygular olup olmadığını görmek için denetler sürümünü denetler postcommit çağrı bir script olurdu sırayla) eğer öyleyse.

Db yama daima yapılandırma tablosunda sürüm numarası yukarıda belirtilen güncelleyerek bitirmek gerekir.

Bu yaklaşım tam bir döküm dosyası dayalı yeni bir veritabanı kurmak ve daha sonra da bunu yükseltmek için ona gerekli yamaları uygulayarak için yeteneği dahil uzatılabilir.

. ŞİDDETLE kimin yüklemek dosya veritabanı için ağır kaldırma yapmak sürüm 'update' işlevlerini içeren bir siteye özel modülü kullanmanızı öneririm - (slideshare link) son toplantısında bu konuda bir sunum yaptı şema değişiklikleri ve ayarları / yapılandırma değişiklikleri.

Drupal olanları çalıştırmak ve size verilerin çok üzerinde uzun süre çalışan toplu işlemleri gerektirir thaht şey için bir toplu işleme mekanizmasının veren hangi takip edecektir, çünkü etrafta. Sql dosyaları tutmak için kesinlikle daha üstün.

Bu benim yaklaşımım dosya adının başında bir sürüm numarasına sahip sql düzeltme eki dosyalarını (db şema / veri yükseltme için SQL ifadeleri içeren dosyaları) kullanmaktır.

Ben dosyası (xml ya da bir şey) gerekli DB yapısı ile, ve gerekli değişiklikleri uygular aracı düşünüyordum.

Ve evet, daha fazla araştırma sonra agreee: diğer bazı çözümler adapte daha bunu kod kolay olacaktır. simpletest drupal modülü bazı rutinleri yararlı olacak olsa, ben düşünüyorum.

Sen kitabı Refactoring Databases kontrol etmek isteyebilirsiniz.

Ben yazarların birinden duydum tavsiye yerine sıfırdan her zaman kadar bina daha sürüm sürüm veritabanını yükseltme bir komut dosyası sahip olmaktır.