प्रत्येक डेटाबेस ऑब्जेक्ट को संस्करण नियंत्रण प्रणाली में एक अलग फ़ाइल में संग्रहीत किया जाएगा। संस्करण नियंत्रण प्रणाली इस उदाहरण की तरह फ़ाइलें हो सकता है:
|- tables
|- employees.sql
|- contracts.sql
|- packages
|- contract_api.sql
|- functions
|- get_employee_name.sql
...etc...
जब भी आप कुछ डीबी वस्तु संशोधित करते हैं तो आप भी उचित एसक्यूएल (DDL) फ़ाइल संस्करण नियंत्रण प्रणाली में संशोधित करना होगा। उदाहरण के लिए, यदि आप पैकेज contract_api संशोधित करते हैं, तो आप फ़ाइल contract_api.sql फ़ाइल अपडेट करें। चूंकि इस फ़ाइल को संशोधित किया गया है - इसे निरंतर एकीकरण इंजन द्वारा स्थापित किया जा सकता है।
लेकिन, जैसा कि आप जानते हैं, डीडीएल स्क्रिप्ट हैं, जिन्हें दो बार निष्पादित नहीं किया जा सकता है। उदाहरण के लिए 'टेबल mytable बनाएं ...' स्क्रिप्ट केवल एक बार निष्पादित की जा सकती है। और यदि आपका सिस्टम पहले से ही उत्पादन में है, तो आप अपने 'CREATE टेबल ...' स्क्रिप्ट के शीर्षलेख में 'ड्रॉप टेबल mytable' कथन बर्दाश्त नहीं कर सकते हैं। इसलिए उत्पादन प्रणालियों के लिए आपको डेल्टा स्क्रिप्ट बनाने की आवश्यकता है जो केवल परिवर्तन प्रदान करेगी। इस मामले में आप आसानी से staff_upd01.sql नामक एक नई फ़ाइल बना सकते हैं जिसमें 'वैकल्पिक तालिका mytable जोड़ें COLUMN' कथन शामिल है।
कुछ समय के बाद अपने भंडार ऐसा दिखाई दे सकता:
|- tables
|- employees.sql
|- employees_upgr20091001.sql
|- employees_upgr20091004.sql
|- contracts.sql
|- packages
|- contract_api.sql
|- functions
|- get_employee_name.sql
...etc...
और यह ठीक है, क्योंकि: 1) जब आप डेटाबेस के लिए आज 'वृद्धिशील परिवर्तन वितरित करने के लिए की जरूरत है - आप फ़ाइलों को संशोधित किया गया आज तैनात 2) यदि आपको अपने सिस्टम की क्लीन स्थापना को तैनात करने की आवश्यकता है - तो आप क्रम में सभी स्क्रिप्ट चलाते हैं, उदाहरण के लिए पहले employees.sql, तो employees_upgr20091001.sql, आदि
प्रत्येक डीबी वस्तु संस्करण नियंत्रण प्रणाली में एक अलग फाइल में है के रूप में, आप सभी परिवर्तनों पर एक अच्छा नियंत्रण है।
स्रोत
2009-10-01 11:21:56
एससी के तहत आप डीबी कैसे डालते हैं? –
यदि आपने विज़ार्ड पर एक नज़र डाली है तो मैंने बताया कि यह डेटा सहित सभी चीज़ों के साथ एक स्क्रिप्ट बनाता है। इसमें एसपी शामिल है, लेकिन हमारे पास इसे अधिक प्रबंधनीय बनाने के लिए अलग-अलग फाइलें हैं। हम उन फ़ाइलों को नियंत्रित करने के लिए TortoiseSVN का उपयोग करते हैं। यदि आप जेफ के आलेख को देखते हैं तो बेहतर तरीके हैं ... –
यदि मैं कर सकता हूं तो मैं आपको कई गुना बढ़ा दूंगा, मुझे आश्चर्य है कि कितने लोग किसी अन्य कोड की तरह एसक्यूएल परिवर्तनों का इलाज नहीं करते हैं। – HLGEM