Test ortamından üretim ortamına nasıl geçilir?


46

Göç yerel ortamdan üretim ortamına kadardır. Üretim ortamı bir süredir çalıştı ve pek çok makale yarattı.

Siteme yeni şeyler eklemek için özel bir tema ekledim ve yerel test ortamımda CCK, Views ve diğer modülleri yükledim. Şimdi yerel test ortamı bittiğine göre, veritabanının içeriğini tahrip etmeden onu üretim ortamına nasıl geçiririm?

Yanıtlar:


34

Bu hemen hemen herkesin farklı bir cevabı olduğu önemsiz bir sorundur: prodüksiyona yönelik aşamaları ele almanın kanonik bir Drupal yolu yoktur. Drupal gösterisini yöneten Adam Buytaert, Drupal 8'in ana inisiyatiflerinden biri oldu . Tabii ki, Drupal 7 piyasaya sürüldü, bu yüzden herhangi bir meyve vermesi biraz zaman alacaktı.

Sorun iki ayrı konuya bölünebilir:

  • Aşama yapılandırması (değişkenler, içerik türleri, alanlar, görünümler, vb.)
  • İçeriği hazırlama (düğümler, kullanıcılar vb.)

İlki, çoğunlukla site yapılandırmanızı alacak ve Drupal kurulumunuza ekleyebileceğiniz bir modüle dönüştürecek olan Özellikler modülü tarafından ele alınabilir : bu şekilde, sürüm kontrol sisteminize ekleyebilir ve endişelenmenize gerek kalmaz içeriğinizi taşıdığınızda kayboluyor.

İkincisi gerçekten zor, çünkü aktif bir sitede, geliştirme ortamınızla ilk senkronizasyonu yaptıktan sonra bile içeriğin üretimde değişmesi muhtemel. Bu, konfigürasyonda yapabileceğiniz gibi hazırlama sırasında içeriğin toptan olarak değiştirilmesini önler.

Ek olarak, Drupal içerik için evrensel olarak benzersiz tanımlayıcıları (UUID'ler) kullanmaz: bir düğüm veya kullanıcı her eklendiğinde, kimlik birer birer artar. Öyleyse, geliştirme sitenizdeki düğüm 45, üretim sitenizdeki düğüm 90 olabilir.

Ne yazık ki, bunun için harika bir çözümüm yok: içerik hazırlama, Drupal'ın gerçekten zayıf bir tarafı. Kişisel olarak yaptığım, yalnızca üretim sitesine içerik eklemek. Bir müşteri içeriğin yayınlanmadan önce nasıl göründüğünü görmek isterse, yalnızca müşterinin erişebileceği bir üretim sitesi klonu hazırlarım. Daha sonra onaylandıktan sonra aynı değişiklikler doğrudan üretime yapılır.

Dağıtma işlemi için başka bir alternatif daha var: Deploy modülü. Sahneleme içeriğini nispeten acısız hale getirmek için Hizmetler'i kullanması gerekiyordu . Ancak etkinliği konusunda kefil olamıyorum ve Drupal 7 versiyonuna sahip değil.


Uuid ve uuid_features kullanarak içerik taşıyabilirsiniz, ancak henüz güvenilir değil.
Jeremy Fransız

7

Bizim sürecimizde.

  1. Db'yi prod'dan çeken bir kabuk betiğimiz var.
  2. Canlı / dev dalları senkronize etmek için dev / staging şubelerimizi yeniden inşa etmek için Hudson kullanıyoruz.

    Git'i kullandığımızdan, yaptığımız her işin kendi şubesi vardır, daha sonra KG'ye geçildiğinde regresyon testi için hazırlama sunucumuz olarak ustalıkla birleştiririz.

    Master hazır olduğunda Release Server, canlı bir kopyası olan bir deneme sürümü yaparız (konfigürasyon, donanım vb.).

  3. FeatureYapılandırmaları dağıtmak için modül kullanıyoruz . Bazı öğeler henüz özellik tarafından desteklenmiyor, bu yüzden hook_update_N kullanıyoruz, sonra updatedb.php dosyasını kullanıyoruz veyadrush -vd updb

  4. Serbest bıraktıktan sonra, drush fra --yesgeçersiz kılma özelliğini geri almak için Özellikler geri dön ( ) işlemini yapın.
  5. Boost (Vernik'e taşınıyor) ve Memcache kullandığımız için cache'yi ( drush cc all) temizlememiz gerekiyor .

    Resimlerimizi / videolarımızı vb. Senkronize etmek için rsync kullanıyoruz ...


Lütfen 2. adımı inceleyebilir misiniz - Git'i kullanarak herhangi bir dosya sistemi değişikliğini kolayca birleştirebileceğimizi biliyorum, ancak veritabanının bütünlüğünü nasıl sağlıyorsunuz? Ayrıca, burada "Özellikler" (yapılandırmaları dağıtmak) kullanmanın amacı nedir? Teşekkür ederim!
Raj Pawan Gumdal

2

Bir XAMPP sunucusundan başka bir sunucuya geçirmek için bu sitedeki talimatları izledim .

Geliştirme sunucunuzdakiyle aynı yapıyı üretim sunucunuzda tuttuğunuzdan emin olun. Ayrıca Drupal admin panosunda bulunan bazı dosyaları düzenlemek zorunda kaldım: admin / config / media / file-system

Genel dosya sistemi yolunuzun ve Geçici dizininizin doğru konumlara sahip olduğundan emin olun .


Bu asla "birleştirme" probleminden bahsetmiyor. Sorun açıkça, üretim sunucusunda yapılan geliştirmelerin birleştirilmesi gerektiğinde üretimin bozulmamış olması gereken içerik verilerinin olduğunu belirtir.
Raj Pawan Gumdal
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.