2012-02-02 10 views
7

मैं माइस्क्लुएल डेटाबेस के साथ काम कर रहा हूं। समस्या को सरल बनाने के लिए, मान लें कि मेरे पास दो वातावरण हैं: स्थानीय एक (विकास) और दूरस्थ एक (उत्पादन मोड)।स्थानीय एनवी से एक संशोधित डेटाबेस को उत्पादन में

डेटाबेस में, मेरे पास कुछ सारणी हैं जिनमें कॉन्फ़िगरेशन डेटा होता है।

जब मैं डेटाबेस स्कीमा और कॉन्फ़िगरेशन टेबल सामग्री को संशोधित करता हूं तो मैं विकास मोड से वितरण मोड को डिलीवरी को स्वचालित रूप से कैसे स्वचालित कर सकता हूं?

उदाहरण के लिए, मैं इसे स्थानीय और दूरस्थ डेटाबेस के बीच एक अंतर करके मैन्युअल रूप से डॉट करता हूं। लेकिन, मुझे लगता है कि यह विधि इतना साफ नहीं है और मेरा मानना ​​है कि वहां अच्छा अभ्यास करने की अनुमति है।

+0

मैं "मैन्युअल रूप से" बकाया नहीं दे सका क्योंकि मेरी विशिष्ट ज़रूरतों का कोई सटीक उत्तर नहीं था। हालांकि, सुझाव बहुत अच्छे हैं। धन्यवाद। – Zakaria

उत्तर

3

इस मामले हैं, जहां आप एक से अधिक वातावरण और कई डेवलपर्स स्कीमा परिवर्तन करने बहुत बार और php का उपयोग कर में उपयोगी हो सकता है .. https://github.com/davejkiger/mysql-php-migrations

+0

उत्तर के लिए धन्यवाद। क्या आपने इस उपकरण का उपयोग किया था? – Zakaria

+0

हां। हमारे लिए अच्छी तरह से काम करता है। सभी स्कीमा परिवर्तन माइग्रेट स्क्रिप्ट द्वारा पठनीय विशेष प्रारूप में संग्रहीत किए जाते हैं और एक बार स्क्रिप्ट चलाने के बाद इसे डीबी को वापस चलाएं और परिवर्तन लागू करें। इसमें अलग-अलग देव वातावरण का समर्थन करने के लिए कुछ सभ्य विकल्प हैं .. उदाहरण के लिए प्रत्येक वातावरण अलग-अलग पथों में स्क्रिप्ट को स्टोर कर सकता है और माइग्रेट स्क्रिप्ट चलाते समय आप पथ पैरामीटर निर्दिष्ट कर सकते हैं। –

1

अपनी परियोजनाओं के सबसे में मैं SQLAlchemy का उपयोग करें (एक अजगर उपकरण डाटाबेस के साथ साथ एक प्रबंधन करने के लिए ORM)। यदि आपके पास पाइथन I के साथ कुछ अनुभव (शुरुआती से थोड़ा अधिक) है तो मैं इसका उपयोग करने की अत्यधिक अनुशंसा करता हूं। आप that की थोड़ी मदद के साथ this उपकरण देख सकते हैं। यह आपके डीबी को अन्य rdbms में माइग्रेट करने के लिए भी बहुत उपयोगी है (उदाहरण के लिए mysql postgres या oracle)।

2
  • अपने डेटाबेस के लिए पैरामीटर "संस्करण" का परिचय दें। यह संस्करण कहीं भी आपके कोड में और कहीं भी आपके डेटाबेस में लिखा जाना चाहिए। आपका कोड केवल डेटाबेस के साथ काम करेगा यदि उनके बराबर संस्करण

  • अपने MySQL कनेक्शन के चारों ओर एक रैपर बनाएं। इस रैपर को संस्करणों की जांच करनी चाहिए और यदि संस्करण संगत नहीं हैं, तो इसे अपग्रेड करना प्रारंभ करना चाहिए।

  • "अपग्रेड" अनुक्रमिक की प्रक्रिया है जो एसक्यूएल कमांड के साथ * .sql फ़ाइलों की सूची को लागू करता है, जो आपके डेटाबेस को एक राज्य से दूसरे स्थान पर ले जायेगा। यह स्कीमा परिवर्तन या डेटा मैनिपुलेशन कमांड हो सकता है।

  • जब आप डेटाबेस के साथ कुछ करते हैं, तो इसे केवल नई * .sql फ़ाइल और वृद्धि संस्करण के माध्यम से करें।

  • नतीजतन, जब आप विकास डेटाबेस से उत्पादन में अपना डेटाबेस तैनात करते हैं, तो आपका डेटाबेस स्वचालित रूप से उसी तरह से अपग्रेड हो जाएगा जैसा इसे विकास के दौरान अपग्रेड किया गया था।

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