2012-04-10 17 views
12

पृष्ठभूमि: -दक्षिण, डीजेगो और गिट का उपयोग करते समय डीबी माइग्रेशन से निपटने का सही तरीका क्या है?

मैं Django 1.3 का उपयोग कर रहा हूं। हम डीबी माइग्रेशन और गिट एससीएम के लिए मॉड्यूल के रूप में दक्षिण का उपयोग कर रहे हैं।

समस्या: -

माइग्रेशन फ़ोल्डर कि बनाई है से निपटने के लिए सही तरीका क्या है?

मुख्य समस्या यह है कि मैं विकास मशीन में डीबी स्कीमा में परिवर्तन करता हूं, जब मैं इसे उत्पादन सर्वर पर अपलोड करता हूं तो मुझे मौजूदा स्कीमा माइग्रेट करना होता है। ऐसा करने पर माइग्रेशन फ़ाइलों के साथ हमेशा कुछ समस्या होती है।

क्या मुझे बस माइग्रेशन फ़ोल्डर में माइग्रेशन फ़ोल्डर जोड़ना चाहिए? या इसके बारे में जाने का एक बेहतर तरीका है?

+0

माइग्रेशन फ़ाइलों के साथ आपको क्या समस्या है? मैं आमतौर पर इन्हें गिट में जांचता हूं, और यह तब तक ठीक काम करता है जब तक आप उन्हें अनुक्रम में रखने के लिए सावधान रहें (इसलिए विभिन्न शाखाओं पर समानांतर में कोई नया नहीं बनाते)। – Dougal

+0

मुद्दा यह है कि यदि मैं स्थानीय मशीन पर स्कीमा माइग्रेट करता हूं और उत्पादन मशीन पर ऐसा करने की कोशिश करता हूं तो यह एक बार काम करता है। क्या यह काम करता है ? यानी एक ही माइग्रेशन फाइलें उत्पादन सर्वर के लिए भी काम करती हैं? – Akamad007

+0

हां, उन्हें यह मानना ​​चाहिए कि आपने डीबी में अन्य बदलाव नहीं किए हैं। यदि आपके पास कोई विशिष्ट त्रुटि संदेश है या कुछ हम इसे डीबग करने का प्रयास कर सकते हैं, लेकिन "एक बार काम नहीं किया" से काम करना मुश्किल है। : पी – Dougal

उत्तर

21

आपको माइग्रेशन फ़ोल्डर को अपने संस्करण नियंत्रण प्रणाली में जोड़ना चाहिए और उत्पादन और विकास के लिए एक ही फाइल का उपयोग करना चाहिए। यदि आप अपने माइग्रेशन को शुरुआत से नहीं पेश करते हैं और आपके पास पहले से मौजूद टेबल हैं, तो आप अपने उत्पादन प्रणाली पर कुछ समस्याएं चला सकते हैं।

इसलिए आपको नकली पहला माइग्रेशन होना है, जो आमतौर पर syncdb जैसा ही होता है जब आपने पहली बार अपना डेटाबेस बनाया था। तो जब उत्पादन मशीन पर पहली बार आपके ऐप के लिए माइग्रेशन लागू करने का प्रयास करते हैं, तो manage.py migrate app_name 0001 --fake निष्पादित करें। इससे दक्षिण को पता चलता है कि पहला माइग्रेशन पहले ही लागू हो चुका है (जो पहले ही सिंकडीबी के साथ खुश है) और जब आप migrate फिर से चलाते हैं, तो यह निम्न माइग्रेशन के साथ जारी रहेगा।

+0

यह वही है जो मैं खोज रहा था। : पी धन्यवाद !! (आपका जवाब मिला और इसका शोध भी किया। वे बहुत भयानक हैं) – Akamad007

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

  • कोई संबंधित समस्या नहीं^_^