Magento Geliştirme İş Akışı: Test magento kurulumundan veritabanlarının “kaynak kontrolü” ve canlı Magento kurulumu nasıl güncellenir?


17

Bu soruyu gönderiyorum çünkü bir çevrimiçi mağazanın tüm yönlerini yönetmek isteyen biri için en iyi geliştirme iş akışının ne olduğunu bilmek istiyorum.

Elbette tüm web geliştirmelerinde olduğu gibi, tüm yazılım çözümünün canlı bir kopyasına ve en az bir geliştirme kopyasına sahip olmak elbette çok önemlidir. Ancak Magento malzemelerini yönetmek, diğer "dosya tabanlı" yazılımları yönetmek gibi değildir, çünkü oyuna giren bir veritabanı bileşeni de vardır, bu yüzden Git gibi bir aracı kaynak kontrolü için VCS aracı olarak kullanabilmemin yanı sıra, Canlı ve geliştirme sürümleri arasındaki veritabanındaki farklılıkları yönetmeye devam ediyorum.

Tabii ki cron aracılığıyla canlı veritabanının yedeklerini yapabilir ve SQL INSERT ifadelerini yedeklemeden kaynak kontrolüne ekleyebilirim, ancak bundan sonra müşteriler canlı veritabanına giren bir yandan sipariş verirken ve sipariş verirken iki veritabanı ayrı olarak gelişecek ve çünkü geliştirme veritabanında ayrı olarak güncelleme yapılır. Geliştirme ve canlı sürümleri birleştirmeye gelince, php dosyaları git üzerinden güncellenebilir (veritabanı yapılandırma ayrıntılarını barındıran tek dosyada gitignore kullanarak), ama veritabanı dosyaları ne olacak? INSERT SQL ifadeleri içeren iki dosyayı bir felakete neden olmadan ve sistemi harap etmeden iki yedeklemeden nasıl birleştirebilirim?

Magento geliştirme yaşam döngüsünün gölgeli alanı, karşı karşıya olduğum: veritabanı farklılıklarını yönetmek.

Bana öyle geliyor ki, Magento mağazasının geliştirme / test etme ve canlı sürümleri arasında farklılık gösteren veritabanı içeriğini senkronize etmenin tek çözümü, Magento Yönetici Paneli aracılığıyla geliştirme sürümünde yapılan tüm değişiklikleri bir kağıda yazmak, ve herhangi bir hata yapmamayı umuyoruz ve daha sonra her şey test edildikten ve dosyalandığında, canlı sürüme geçmek ve Magento çevrimdışı olduğunda ve bakım moduna geçirilirken aynı değişiklikleri yapmak için. Bu manuel bir işlem olduğundan, hataya eğilimli midir?

Peki, test magento sunucusu ile canlı magento sunucusu arasında veritabanı senkronizasyonunu işlemenin en iyi yolu nedir?

Teşekkürler.


2
yapılandırma için: github.com/punkstar/mageconfigsync
B00MER

Yanıtlar:


3

Farkında olduğum seçenekler

1.) Manuel - diğer bir deyişle eylemlerinizi arka uçta manuel olarak tekrarlama = hataya yatkın dediğin gibi, yavaş

2.) Doğrudan SQL sorguları ile veritabanı düzeyinde = hataya eğilimli

3.) sql kurulum / yükseltme komut dosyaları ekleyen, değişiklikler yapan bir uzantı oluşturun. Bu dosyalar deponuzun bir parçasıdır ve dağıtılabilir. Bu yaklaşım çoğunlukla kullanıcı arayüzünü atlar.

4.) Orada gibi projelerde daha hoş bu iş akışının bazı yapmaya çalışıyorum oluyor bazı çalışmalar olmuştur bu , ama henüz prime time için tam olarak hazır olmadığını düşünüyorum.

Tüm bu seçeneklerden şu anda 3'ü tercih ediyorum.)


Evet, ben de 3'ü tercih ediyorum. Kim istemez ki. Ancak, 3 tek gerçek seçenek olduğundan ve henüz kararlı olmadığından, tüm önerileri atlayacağım ve sadece kullanıcı arayüzünün yerel sunucuda nasıl çalıştığını anlamak ve tüm ürün kataloğunu gerçekleştirmek için test yapacağım ve ürünleri ve diğer güncellemeleri doğrudan canlı sunucuda, muhtemelen bir süre çevrimdışı veya daha iyisi, sadece hazır olduklarında aktif hale getirmeye dikkat ederek, çünkü yine de dikkatli olmalıyım, neden dikkatli olmamalıyım? bu şekilde, muhtemelen 1 ve 2'den en az hasarı verebilir. Teşekkürler
John Sonderson

3.) kararlı, tekrarlanabilir ve dosya tabanlıdır - dezavantajı kurmak için daha fazla çalışma gerektirir.
Kristof at Fooman


1

MySQL için Quest Software (şimdi Dell'in) Toad'ı gibi veritabanı araçları vardır. Bu veritabanı yönetim aracı, iki veritabanı arasındaki değişiklikleri görmek için kullanabileceğiniz veri ve yapı karşılaştırma özelliklerine sahiptir. Karşılaştırmak istediğiniz veritabanı sürümlerinin yedeklerini (veya git taahhütlerini) ve voila'yı tutmanız yeterlidir. İkisini senkronize etmek için bir komut dosyası üreticisi bile var.


1

Bu sorunu, yerel için uzak bir DB oluşturarak ve okuma / yazma konusundaki gelişmeleri hazırlayarak çözdük. Gerçekten zaman ve verimlilik ile yardımcı olur; Artık klonlamaya gerek yok, DB'yi herkesin ortamına yüklüyor.

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.