Bir geliştirme kopyasında bir sitede nasıl güncelleme yapabilirim, ancak canlı sitenin gelişen veritabanını geçersiz kılmadan güncellemeleri nasıl geri taşıyabilirim?


20

Başlıkta olabildiğince açıklayıcı olmaya çalıştım ve bu sorunun daha önce çeşitli şekillerde sorulduğunu biliyorum, ancak buna iyi bir cevap bulamadım ve bu sorunu hiç kimsenin çözmediğini hayal etmek.

Basit, bir WP sitesi yayına girdikten sonra, statik bir site değilse, yeni yayınlar ekleyerek, yeni woocommerce siparişleri, yeni kullanıcı hesapları vb.

Sitede bazı büyük değişiklikler ve güncellemeler yapmak istersem, bunu yapmanın en basit ve en kolay yolu, yerel bir yüklemeye veya başka bir geliştirme etki alanına kopya yapmak ve tüm değişiklikleri orada yapmaktır. Tüm değişiklikler yapıldıktan sonra bunları tekrar canlı siteye kopyalamak istiyorum.

Değişiklikler, tema ve css gibi yalnızca dosyalarda yapılıyorsa, bu biraz kolaydır. Ancak, değişiklikler yeni eklentiler eklemek ve bu eklentilere bağlanan / ilişkilendirilen içerik eklemek gibi veritabanındaki değişiklikleri içeriyorsa, artık siteye geri kopyalayamıyorum, çünkü canlıya eklenen yeni değişiklikleri geçersiz kılacaktır sitenin veritabanı. tüm yeni yayınlar, yeni siparişler, yeni resim yüklemeleri silinecek.

Artık farklı vaka senaryolarının farklı çözümlere sahip olduğunu biliyorum, ancak tüm vakaları ele alan bir yöntem yok mu?

Örneğin, canlı sitede yapılan değişiklikler yeni yayınlarsa, yayınları geliştirici sitesine aktarabilir ve içe aktarabilir ve ardından tüm siteyi devredebilirim. Bazı diğer öğelerle aynı, ancak her türlü öğe değil. Ve buradaki diğer sorun, wordpress'teki dışa aktarma ve içe aktarma işlevinin uçsuz bucaksız olması. Bu çok basit ve sadece belirli öğeleri seçmek ve vermek için çok az seçeneğiniz var. Muhtemelen orada her "gelişmiş ithalat / ihracat" eklentisi denedim ve hiçbir şey henüz bu sorunu çözmek için.

Başka bir iş parçacığında, birileri bu eklentiyi temel olarak canlı sitede bir tema yüklemek ve üzerinde çalışmak için işaret ederken, normal kullanıcılar hala mevcut temayı görüyor, ancak bu hala her türlü değişikliği çözmüyor. çünkü içerikte değişiklik yapmak istiyorsanız, altbilgi veya gezinme menüsü diyelim, mevcut görüntülenebilir temayı / siteyi hala yansıtacak ve yeni test temasında iyi görünebilecek, ancak canlı olanda görünmeyebilecek şeyler.

Aynı sitede / veritabanında bir sitenin "dalını" geliştirmenin ve sonra geçiş yapmanın bir yolu yok mu? ya da geliştirici bir sitede geliştirmenin bir yolu yok ama aslında veritabanlarını tahribatsız bir şekilde birleştiriyorlar mı? Hangi bileşenleri ve şeyleri etkilediğinizi biliyorsanız, bunu yapmanın bir yolu olmaz mı? ya da böyle bir şeyi denemek için bir MySQL ustası olmanız gerekir.

Bu bilmeceye sahip olan tek kişi ben olamam. Bu sorunun çözümü olmadığını hayal edemiyorum. Bu nasıl yapılabilir?

Şimdiden teşekkürler.


3
Herkesin bu sorunu vardır ve basit bir çözümü yoktur, kodu revizyon kontrolünde tutun, sql'yi bir hazırlama sunucusuna dökün, taşıma sırasında bakım kilitleri oluşturun (5-10dk).
Wyck

Kabul etmem. CrowdFavorite'ın RAMP eklentisi, içeriği sahnelemeye ve dağıtmaya ihtiyaç duyanlar için basit bir çözümdür. "Basit bir çözüm" olarak adlandırmak bir streç olabilir, ancak iyi olabilir ve herhangi bir geliştirici bunu ayarlayabilmelidir (SSH ve uzaktan MySQL erişimi vb.
Gerektirir

Herkes denedi sitepush ? Ben daha iyi bir çözüm ise Rampa için 250 $ ödemek umursamıyorum ama bu sistemlerin tam dağıtım ve test olmadan ne kadar iyi çalıştığını görmek zor sanırım.
James

Sitepush kullanmadım. Gerçi tam DB'leri itiyor gibi görünüyor (Migrate WP DB Pro gibi). Statik bir siteyi dağıtmak için iyidir, ancak canlı bir dinamikte başarısız olur (yani yeni yayınlar / yorumlar oluyor). RAMP aslında canlı DB'nin yerine DB'ler ve birleşmeler arasındaki farkı yönetir.
jb510

Açık kaynak kodlu bir proje olan DBV PHP'yi kullanarak DB'nizi sürüm kontrolüne tabi tutmak isteyebilirsiniz . Hatta yönetimi kolaylaştırmak için bir arayüze sahiptir. Başka bir seçenek, örneğin, CLI uygulamasında yerleşik bir taşıma aracı olan Laravel'e geçmek olacaktır.
kaiser

Yanıtlar:


2

Gerçekten ne yapmak istediğinizi yapmanın kolay bir yolu yok, ama yapacağım şey sitenizin bir anlık görüntüsünü yapmak, yoru değişiklikleri uygulamak ve bir şey fren geri yükleyip tekrar deneyin. Bir saatliğine kapanmış olabilir, ancak son zamanlarda üzerinde çalıştığım bir siteyi tuğlalaştırdığımda bunu yaptım. Bu, sorunu çözmenin "doğru" yolu olmayabilir, ancak benim için işe yarıyor. İyi şanslar.


WP ekibinin bunu profesyonel olarak yapmayı düşünmemesi nasıl mümkün olabilir? 2018!
asael2
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.