यह एक बग नहीं है
कम से कम अपने कोड पर नहीं। यह आपकी प्रक्रिया में एक बग है । आपका प्रोजेक्ट मैनेजर आपके कोड की तुलना में आपकी प्रक्रिया के बारे में बहुत अधिक चिंतित होना चाहिए।
आप इस के साथ कैसे पेश आएंगे?
बस, इंजीनियरों को उत्पादन या साझा विकास डेटाबेस को बदलने नहीं देने से ।
यह एक साझा विकास डेटाबेस है:
आदर्श रूप में, यदि संभव हो तो, पहले स्थान पर एक साझा डेटाबेस होने से बचें । इसके बजाय, प्रति-डेवलपर डेटाबेस हैं जो अल्पकालिक हैं। इसे स्क्रिप्ट के साथ स्वचालित किया जाना चाहिए, अन्यथा परीक्षण की लागत बहुत अधिक हो जाती है, और चीजों का परीक्षण नहीं करने के लिए एक प्रोत्साहन है। आपके पास ये डेटाबेस डेवलपर के कार्य केंद्र या केंद्रीय सर्वर पर हो सकते हैं।
अगर, किसी कारण से, आपके पास एक साझा डेटाबेस होना चाहिए, तो आपको जुड़नार का उपयोग करना चाहिए - अनिवार्य रूप से, कुछ ऐसा जो डेटाबेस को एक ज्ञात-अच्छी स्थिति में सेट करता है जब भी आपको इसका उपयोग करने की आवश्यकता होती है। यह डेवलपर्स को अन्य लोगों के परिवर्तनों से काटे जाने से बचाता है।
यदि आपको डेटाबेस में स्थायी परिवर्तन लागू करने की आवश्यकता है, तो आपको उन्हें अपने स्रोत नियंत्रण के लिए प्रतिबद्ध करना चाहिए । अपने डेटाबेस को ऐसे सेट करें कि देवों को सीधे इसे लिखने की अनुमति नहीं है, और एक कार्यक्रम है जो स्रोत नियंत्रण से परिवर्तन खींचता है और उन्हें लागू करता है।
अंत में, आपके विवरण से कि आप चीजों को कैसे डीबग कर रहे हैं, ऐसा लगता है कि आप सीआई का उपयोग नहीं कर रहे हैं । CI का उपयोग करें । यह सेटअप करने के लिए थोड़ा दर्द है, लेकिन यह लंबे समय में बहुत समय बचाएगा, न कि आपको अप्रतिरोधी डेटाबेस बग के बारे में चिंता करने से रोकने के लिए। आपको अब केवल हाइजेनबग्स की चिंता करनी होगी !
यह मानते हुए कि यह एक उत्पादन डेटाबेस है:
यदि आपके देवता उत्पादन डेटाबेस बदल रहे हैं, तो कई चीजें बहुत गलत हो गई हैं, भले ही परिवर्तन बिल्कुल सही हों।
डेवलपर्स को कभी भी उत्पादन डेटाबेस तक नहीं पहुंचना चाहिए । वहाँ बिल्कुल कोई कारण नहीं है, और बहुत सारी चीजें हैं जो बहुत गलत हो सकती हैं ।
यदि आपको किसी उत्पादन डेटाबेस में कुछ ठीक करने की आवश्यकता है , तो पहले आप बैकअप लें, उस बैकअप को एक अलग (विकास) उदाहरण पर पुनर्स्थापित करें , और फिर इस विकास डेटाबेस के चारों ओर खेलें। एक बार जब आपको लगता है कि आपके पास एक फिक्स रेडी (सोर्स कंट्रोल पर!) है, तो आप रिस्टोर करें, फिक्स लागू करें और रिजल्ट देखें। फिर, चीजों को फिर से बैकअप लेने के बाद (और आदर्श रूप से समवर्ती अपडेट को रोकना), आप उत्पादन उदाहरण को ठीक करते हैं, आदर्श रूप से एक सॉफ्टवेयर पैच के माध्यम से।
यदि आपको किसी उत्पादन डेटाबेस में कुछ परीक्षण करने की आवश्यकता है ... नहीं, तो आप नहीं करते हैं। आपको जो भी परीक्षण करने की आवश्यकता है, आपको एक विकास उदाहरण में करना चाहिए। यदि आपको परीक्षण करने के लिए कुछ डेटा की आवश्यकता है, तो आपको वह डेटा वहां मिल जाएगा।