2011-04-19 13 views
12

मैं एक एसएमएम डेवलपर के रूप में काम करता हूं और वर्तमान में मुझे एक गतिविधि के साथ काम सौंपा गया है जिसमें डेटाबेस संस्करण शामिल है। हालांकि मैंने सोर्स कोड प्रबंधन किया है, लेकिन मैं इसके लिए काफी नया हूं। इसलिए मैं इसे लागू करने के तरीके पर अलग-अलग विचार और अनुभव करना चाहता हूं।डेटाबेस संस्करण

मैं डेटाबेस से क्या मतलब (ओरेकल/Sybase) संस्करण परिवर्तन जो डेटाबेस स्कीमा/चलाता/आदि के लिए होता पर कब्जा और संशोधन के रूप में यह स्टोर करने के लिए है। असल में हमारी कंपनी में ग्राहक डेटाबेस में कुछ बदलाव होते हैं जिन्हें हम जानते हैं या कम से कम यह पहचानने में सक्षम नहीं हैं कि किसने और किसने विशेष परिवर्तन किया है। हम सिर्फ डीबी में होने वाले परिवर्तनों का रिकॉर्ड बनाने की कोशिश कर रहे हैं।

नोट: मैं एक DB पुरुष नहीं हूँ।

+0

+1 सवाल का जवाब देखना चाहेंगे: डी, ​​हम डीबी अनपढ़ लोगों कुछ मार्गदर्शन ... –

+2

इस बीच में जरूरत है, कुछ उपयोगकर्ता विशेषाधिकार सीमित रोकने के लिए पर विचार यह होने से हो रहा है। – elekwent

+0

आप में से जो PHP में सरल डेटाबेस स्कीमा संस्करण की जरूरत है कि इस स्क्रिप्ट पर एक नज़र के लिए: सीवीएस उल्लेख hehe के लिए http://blog.kicaj.com/database-schema-versioning-in-php/ – Ralphz

उत्तर

5

सामान्य अभ्यास एक निर्माण प्रक्रिया के माध्यम से परिवर्तनों को जाने की अनुमति देना है। असल में .. एक संस्करण नियंत्रण उपकरण है जैसे सीवीएस जहां उपयोगकर्ता क्यूए और प्रोड वातावरण में जाने वाले परिवर्तनों में जांच करते हैं।

तो .. मान लीजिए, तालिका में जोड़े गए कुछ कॉलम हैं, डेवलपर "अलर्ट टेबल ..." कमांड के साथ एक .ddl स्क्रिप्ट में जांच करेगा और यह डेटाबेस पर "लागू" होगा अगली बार जब आप एक बिल्ड करते हैं।

जब तक आप उन (इस मामले .. डेवलपर्स में) सीधे परिवर्तन करने से प्रतिबंधित करने और बजाय एक मानक निर्माण प्रक्रिया का उपयोग, वस्तुओं में परिवर्तन पर नज़र रखने के लिए समय के साथ लगभग असंभव है।

उपयोगकर्ता द्वारा परिवर्तन, समय बदलने, कारण (चेक-इन टिप्पणियां, बग संख्या, नया फीचर अनुरोध इत्यादि) जैसे आवश्यक विवरणों पर विचार करें, जिन्हें बाद में समझने की आवश्यकता होगी कि परिवर्तन क्यों किया गया था। सभी परिवर्तन आमतौर पर "एपॉन्डर" जैसे मानक उपयोगकर्ता का उपयोग करके संकलित किए जाते हैं और संस्करण नियंत्रण प्रणाली की अनुपस्थिति में, आपके पास केवल नवीनतम परिवर्तन (last_ddl_change) तक पहुंच है।

आपकी चिंता डाटा में परिवर्तन ट्रैक करने के लिए है, तो आप चलाता का उपयोग करें या कि फिर से करें-लॉग के माध्यम से पढ़ सकते हैं और आप परिवर्तन पर कब्जा रिकॉर्ड मिल जाएगा गोल्डन गेट की तरह एक अनुप्रयोग का उपयोग कर सकते हैं। आपके प्रश्न से, ऐसा लगता है कि आप ऑब्जेक्ट परिवर्तनों को ट्रैक करने के लिए एक तरीका ढूंढ रहे हैं।

+0

-1 .. बस मजाक कर रहे हैं :) – duedl0r

+0

हाल ही में लिनस सुन रहे थे ..? ;) –

1

यह करने के लिए सबसे अच्छा तरीका है जो सभी परिवर्तनों का प्रबंधन करता है और आसानी से विभिन्न डेटाबेस (अप/ढाल) पर लागू करने की अनुमति देता है डाटाबेस संशोधन सॉफ्टवेयर के कुछ प्रकार है।

इसे को बचाने की आवश्यकता है सभी संशोधन सॉफ्टवेयर में परिवर्तन, कोई प्रत्यक्ष डीबी परिवर्तन नहीं।

PostgreSQL के लिए

हो सकता है कि इसी तरह के उपकरणों में मदद मिलेगी:

संबंधित मुद्दे