İçeriğin üzerine yazmadan bir Live drupal sunucusunu nasıl güncellersiniz?


9

Yayında olan bir sitem var ve insanlar aktif olarak içerik koyuyor. Ancak, kalkınma ortamında bazı değişiklikler yapmak zorunda kaldım, bu da bana birkaç hafta sürdü. Değişiklikler, elbette veritabanı içeriğini ve yapısını değiştiren yeni modüllerin ve eski modüllerin kaldırılmasını gerektiriyordu.

Benim sorum, bu siteyi canlı ortama nasıl geri yükleyebilir ve son iki hafta içinde eklenen yeni kullanıcıların yeni içeriğinin üzerine yazmadan veritabanını nasıl güncelleyebilirim?


Canlı siteyi kilitlemeniz gerekir, yani "hiçbir kullanıcı güncelleme uygulayamaz", canlı siteyi geliştirme sunucunuzla senkronize edin, değişikliklerinizi uygulayın ve tekrar senkronize edin. Aşağıdaki kurulum var: Geliştirme sunucusu (yalnızca güncelleme kodu eklemek için vb.), Bir Ana sunucu - geliştirme sunucusu buna dağıtılır (kullanıcıların içerik eklediği yerde) ve canlı bir sunucu (ana sunucu buna dağıtılır).
Cyclonecode

Yanıtlar:


3

Thomas Zahreddin haklı. Ama neyin değiştiğine bağlı olarak ("beni birkaç hafta aldı ..."), dikkate alınması gereken daha çok şey var.

  1. İçerik türleri eklediniz / değiştirdiniz mi? Bunları dışa ve içe aktarmaya çalışın. İçeriği kaybetmediğinizden emin olun.
  2. Görüntüleme eklediniz / değiştirdiniz mi? Bunları güvenle dışa ve içe aktarabilirsiniz.
  3. Modül Güncellemeleri. Mevcut veriler üzerinde test edin. Kullanıcı verilerinin bir güncellemeyi bozma ihtimali her zaman vardır.
  4. Modül yapılandırma değişiklikleri. Çok fazla değilse, not alın ve yeniden yapın. Else özellikleri ve güçlü kol modülleri deneyin . Başka bir seçenek de tam değişken isimlerini bulmak ve değerleri settings.php.
  5. Geliştirici sisteminde ek içeriğiniz var. Burada işler gerçekten kıllı oluyor. Dağıtım modülünü veya düğüm dışa aktarmayı deneyebilirsiniz . Ama gümüş mermi değiller.

Önemsiz vakanız yoksa, prosedürünüzü önceden test etmeyi öneriyorum. Ve tabii ki canlı sisteme başlamadan önce dosya ve verilerin yedeklerini alın. ( Yedekleme ve Taşıma burada işe yarar .)


1

Neyi değiştirmek istediğinizi kontrol etmelisiniz:

  • contenttype veya bundle -> yeni contenttype | bundle'ı ekleyin, düğümleri dışa ve içe aktarın veya bu kayıtlar için veritabanındaki contenttype | bundle'ı değiştirin
  • tek alanların adı ve içerik türlerinde varlıklar | paketler -> örneğin yönetici arayüzü veya
  • alanlardaki değerler -> en zor görev: bunu veritabanındaki SQL ile (muhtemelen) veya migrate gibi bir modülle yapabilirsiniz

1

Drupal web sitelerini güncellerken işteyim için de aynı prosedürü uyguluyorum. En büyük sorun, Drupal'ın içeriği ve mantığı veritabanında ayırmada gerçekten iyi bir iş çıkarmamasıdır.

Thomas Zagreddin ve BetaRide tarafından verilen cevaplar, taşıma işlemini başarıyla tamamlamanız için size en iyi şansı vermekte yeterli olacaktır. Bu konuda gerçekten kutsal bir kâse yok.

Size bir geliştirme ipucu vermek istiyorum, bu da web sitelerimizi güncel tutmakta bana çok fazla sorun kazandırıyor: Mantıklarınızı kodunuzda mümkün olduğunca tutmaya çalışın (modüller / temalar). Mümkün olduğunca, Görünümler oluşturmaktan kaçının. Bazen yapmanız gerekir, ancak bu başka bir veritabanı güncellemesi gerektirir ...

Kaynak Kontrol Yönetimini Kullanın!

Her şeyi koda kadar tutabiliyorsanız (elbette bunu her zaman yapamazsınız), kaynağınızı güncellemek için Git , SubVersion veya Mercury gibi bir SCM kullanabilirsiniz ve en kötü durumda senaryo bir güncellemeniz planlandığı gibi çalışmıyorsa, kaynağınızın önceki sürümü.

Ve elbette, önceki cevaplarda da belirtildiği gibi: yedekleme, yedekleme, yedekleme, yedekleme ...


0

Değişikliklerin birçoğu için Özellikler Modülünü kullanabilirsiniz Bu modül yalnızca yerel ortamda yaptığınız değişiklikleri değiştirebilir.

Aksi takdirde bu güzel modülü kullanabilirsiniz Yedekleme ve Taşıma Sadece bu modülü çevrimiçi olarak yükleyin, ardından mevcut tüm içeriğin veya veritabanının yedeğini alın, ardından bunu yerel olarak dağıtın. Sonra yerel olarak istediğinizi değiştirin, tekrar yerelinizin yedeğini alın ve ardından çevrimiçi olarak dağıtın.


0

Ben de aynı problemi yaşadım. Çözmek için dev içinde olmayan tek içerikte yeni kullanıcı detayları olduğunu belirttim. Ben sadece yöneticinin Kişiler sekmesine gittim ve insanların ayrıntılarını geliştiriciye kopyaladım. Ben dev herhangi bir otomasyon olmadan yazdım. Bu yüzden dev'den bir sonraki yüklememde, insanların detayları doğal olarak doğru olacak ve üzerine yazılmayacak.


Drupal cevaplarına hoş geldiniz! Yukarıdakilerin sizin için harika çalıştığından emin olmama rağmen, çok sağlam görünmüyor. Bir şeyler yazmak yazım hatalarına eğilimlidir ve bir dahaki sefere canlı yayında yeni şeyler varsa, üzerine yazılır (tekrar yazmayı hatırlamadığınız sürece).
Serbest Radikal
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.