हमने ब्रांचिंग के लिए DB डिप्स को संभालने के लिए एक स्क्रिप्ट लिखी। इस लेख को पढ़ें ।
मूल प्रिंसिपल यह है कि यह local.xml
DB क्रेडेंशियल्स लाने के लिए पढ़ता है , फिर उस आधार पर डेटा को डंप करता है। यह डंप को दो भागों में विभाजित करता है, केवल संरचना और फिर डेटा। लेकिन कुंजी यह है कि यह गैर-जरूरी डेटा को छोड़ कर पारंपरिक डंप प्रक्रिया को गति देता है , और सबसे गंभीर रूप से डंप के दौरान किसी भी टेबल के ताले को रोकता है जो अन्यथा आपकी लाइव साइट को अवरुद्ध / लटका देगा।
जब आपको MySQL डंप मिल गया है, तो आप केवल उपयोग करके URL को बहुत आसानी से बदल सकते हैं sed
sed -i 's/www.mydomain.com/staging.mydomain.com/g' ./var/db.sql
फिर अपने नए DB में एक mysql आयात चलाएँ।
तो स्क्रिप्ट के बिना, एक बहुत ही मूल संस्करण इस तरह दिखेगा।
mysqldump -hHostname -uUsername LiveDbname -p > db.sql
sed -i 's/www.mydomain.com/staging.mydomain.com/g' db.sql
mysql -hHostname -uUsername DevDbname -p < db.sql
यदि आप इस प्रकार डीबी में यूआरएल बदलते हैं, तो स्थानीय.एक्सएमएल फ़ाइल को हटाने या इंस्टॉलर को फिर से चलाने के लिए बिल्कुल भी कोई कारण नहीं है।
ब्रांचिंग की पूरी प्रक्रिया हमारे Magento GIT Guide में अच्छी तरह से शामिल है । यह विकास शाखाएँ बनाने के लिए एक अच्छी प्रक्रिया है, लेकिन एक महत्वपूर्ण अंतर से लाइव DB को सिकोड़ती है। इसलिए परीक्षण पूरी तरह से लाइव साइट पर समान नहीं होंगे।
तो एक वेनिला डीबी डंप, सीड रिप्लेसमेंट का प्रदर्शन करते हुए, डीबी आयात एक स्टेजिंग साइट के लिए पर्याप्त है। और जितना संभव हो सके लाइव साइट को मिरर / मैच करेगा।
ग्राहकों के साथ संचार को रोकने के संदर्भ में - हमने इसे कभी भी एक आवश्यकता नहीं माना है, क्योंकि हम हमेशा परीक्षण के लिए जानबूझकर खाते बनाते हैं, कभी भी परीक्षण के लिए वास्तविक ग्राहक आदेशों का उपयोग नहीं करते हैं।