Siteleri hazırlama, DB'deki senkronizasyon güncellemelerini nasıl yönetirsiniz?


11

Geliştiricilerin güncellemeleri canlı sunucuya bırakmadan önce bir hazırlama sitesi üzerinden test etmeleri genel olarak kabul edilir, ancak geliştirme güncellemeleri Wordpress DB'de değişiklikler gerektirdiğinde, canlı sitedeki kullanıcılar DB'yi de güncelleyeceğinden işler karmaşıklaşır.

Hayal edebileceğim tek (karışık) akış şudur:

  1. Yerel sunucuda test (WAMP, XAMP, vb.)
  2. Dağıtmaya hazır olduğunuzda, canlı siteyi bakım moduna geçirin
  3. Canlı siteyi yedekle (Teksir, sqldump vb.)
  4. Hazırlama sitesine kilitli bir canlı sitenin klonu oluşturma
  5. Değişiklikleri yerel ortamdan hazırlama sitesine yükleyin
  6. Hazırlama bölgesini test edin
  7. Yaşamak için hazırlama sitesini itin.
  8. Bakım modunu kaldır

Yukarıdaki akışın dezavantajları:

  • geliştirici hazırlama sitesindeki güncellemeleri dikkatlice test ederken kesinti süreleri kullanıcılar için beklenenden daha uzun olabilir;
  • değişikliklerin manuel olarak yönetilmesini gerektirebilir: örneğin, siteorigin sayfa oluşturucu düzenleri db'de saklanır, bu nedenle bir düzen değiştirildikten sonra, hazırlama alanına elle içe aktarılması gerekir; bu durumda, sayfaları hazırlama sitesine bırakıp içe aktarmak ve çalışıyorsa, canlı siteye aktarmak yeterli olabilir

Bunu başarmanın daha iyi ve daha otomatik bir yolu var mı acaba?

Ne düşünüyorsun?

EDIT, istendiği gibi, geçmişte bazı çözümler önerilmiştir, ancak hiçbiri kesin bir çözüm sunmamaktadır:


@ Dan9, canlı siteye erişimi en aza indirmenin daha güvenli olacağını düşündüm. Canlı sitede düzenleri düzenlemek yaygın bir alışkanlık mıdır? Belki çok endişeleniyorum!
Riccardo

Bunları oluşturabilir, güncelleyebilir, silebilir, geri yükleyebilirsiniz. Ne için endişeleniyorsun?
SarahCoding

Peki, hazırlama sitesinde test yapmadan mizanpaj yüklemek normaldir? Tipik iş akışınız nedir (yerel / hazırlama / canlı)?
Riccardo


Güvenilir mi? Bu aracı mı kullanıyorsunuz?
Riccardo

Yanıtlar:


2

Özellikle WordPress'e hitap eden daha yeni barındırma sağlayıcıları genellikle bu acıyı hafifletmek için araçlara sahiptir. Müşterilerimi sadece kod yukarı hareket (geliştirmeden aşamalı üretime) ve DB şeyler sadece aşağı doğru (kod tersi) bu temiz Git özellikli iş akışı olan Pantheon koymak . Bir veritabanını üretimden sahnelemeye kopyalamak, arabirimleriyle tek bir tıklamadır. Bu iş akışına uyulması şartıyla, bu, üretim veritabanını bozma konusunu hemen hemen ortadan kaldırarak, her iki geliştirme DB aşamasında taze bir üretim DB verisi klonundaki değişiklikleri her zaman test etmemi sağladı.

Pantheon'u kullanmak zorunda değilsiniz - kendi araçlarınızı kullanarak (Git + WP Migrate DB gibi bir DB klonlama eklentisi) benzer bir yaklaşımı benimseyebilirsiniz. Sadece bu yolun benim için iyi çalıştığını görüyorum.

Soru: Evrelemeyi test ederken üretim sitenizi neden bakım moduna soktunuz? Çoğu durumda buna ihtiyaç olmamalıdır. Düşünebileceğim tek durum, önyükleme yapmak için felaketli bir hata ile beslenen ek kullanıcı verilerine karşı oldukça hassas bir çeşit kırılgan sisteme sahip olmaktır - ancak bu muhtemelen birinin ihtiyaç duyacağı farklı, daha büyük bir sorunun göstergesi olabilir. tüm mimarisini yeniden düşünmek.


Sağlayıcım tek tıklamayla hazırlama siteleri oluşturma ve yeniden yazma tablolarında ayrıntılı bir seçim ile push-to-live sağlar, ancak dağıtım bir parçası DB geliştirici tarafı veri enjekte çünkü yine de son test çalıştırılırken kullanıcıları kilitleme gerekir (örneğin sitebuilder sayfa düzenleri DB'de depolanır), bu nedenle kullanıcıların bu aşamada güncellemeyi durdurmasını gerektirir. Bu adımı nasıl gerçekleştireceğiniz konusunda daha iyi bir fikriniz varsa, sizinle paylaşmaktan memnuniyet duyarım!
Riccardo

BTW, her küçük değişiklik yapıldığında dev / evreleme / canlı akıştan geçiyor musunuz? Örneğin, düzenleyicideki bir sayfanın düzenini biraz değiştirmek veya bir menüyü değiştirmek
Riccardo

Evet - dosyalar her seferinde dev -> evreleme -> prod'dan geçer (belki evrelemeyi devre dışı bırakabilirsiniz veya dev - hatırlamayın). Dev dev ekibi için, evreleme prod itmeden önce QA veya tasarımcı / müşteri onayı içindir.
montrealist

1

GIT versiyonlamasını tüm sürece (dosya ve veritabanı) getiren VersionPress'e bir göz atın

Sitelerinde açıklandığı gibi:

VersionPress ağrısız evreleme sağlar . Bu, değişiklikleriniz için kolayca güvenli bir test ortamı oluşturabileceğiniz ve yalnızca hazır olduklarında bunları birleştirebileceğiniz anlamına gelir. Birleştirme burada anahtar kelimedir - VersionPress, canlı sitenizin yeni içeriğe sahip olduğu durumları sorunsuz bir şekilde ele alır.


1
Bu aracın güvenilirliğini nasıl doğrulayabilirim?
Riccardo
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.