भारी विकास के समय के दौरान, डेटाबेस स्कीमा तेजी से और लगातार दोनों को बदलता है, और जब तक बीटा निर्माण के लिए हमारा साप्ताहिक धक्का चारों ओर आता है, तब तक स्कीमा इतना बदल गया है कि एकमात्र समझदार विकल्प मैं सभी तालिकाओं को उल्टा कर सकता हूं। मेरे देव डेटाबेस से नए संस्करणों की प्रतिलिपि बनाएँ। जाहिर है, यह एक बार हम लॉन्च करने के लिए काम नहीं कर रहा है, क्योंकि उत्पादन डेटा को nuking करना आपदा के लिए एक नुस्खा है, इसलिए मैं सोच रहा था कि डेटाबेस स्कीमा परिवर्तन को एक संस्करण / संशोधन से दूसरे में प्रबंधित करने के लिए क्या रणनीति थी?
कुछ मैंने पाया या अनुभव किया है:
- एक डेटाबेस से दूसरे में सीधे nuke और डंप (अब मैं क्या कर रहा हूं)
- SQL स्टेटमेंट के साथ एक UPDATE.sql फ़ाइल बनाए रखना जो स्क्रिप्ट या हाथ से चलाया जाता है।
- सक्रिय डेटाबेस में एक संबंधित "डीबी-स्कीमा-संस्करण" मूल्य के साथ एक अपडेट। एफपी फ़ाइल बनाए रखना
तीसरा विकल्प सबसे समझदार लगता है, लेकिन अभी भी एक बुरी तरह से निर्मित SQL क्वेरी के मध्य-स्क्रिप्ट में विफल होने की संभावना मौजूद है, डेटाबेस को आधे-अद्यतन स्थिति में छोड़कर बैकअप की बहाली की आवश्यकता होती है।
यह एक गैर-मुद्दे की तरह लगता है, लेकिन ऐसा होता है, जब से हम एक टीम के रूप में, हम phpMyAdmin का उपयोग करते हैं, और मैं अपने आप पर भी भरोसा नहीं कर सकता कि याद रखें कि मार डाला एसक्यूएल बयान को अपडेट.फैप फ़ाइल में पेस्ट करने के लिए। एक बार जब आप किसी अन्य पृष्ठ पर जाते हैं, तो मुझे हाथ से SQL कथन को फिर से लिखना होगा, या अपने परिवर्तन को उल्टा करना होगा और फिर से करना होगा।
मुझे लगता है कि मैं जो उम्मीद कर रहा हूं वह एक समाधान है जो हमारे स्थापित विकास वर्कफ़्लो को प्रभावित नहीं करता है?
update.php
याupdate.sql
फ़ाइल का परीक्षण वातावरण में परीक्षण करेंगे, है ना? और PHPMyAdmin को संभावित समस्याओं के लिए दोषी ठहराया जा रहा है जो स्क्रिप्ट जैसे हो सकते हैं, शायद यह एक अलग या बेहतर उपकरण देखने का समय है?