29

मेरे मॉडल के लिए माइग्रेशन उत्पन्न करने के लिए पैकेज प्रबंधक कंसोल में एड-माइग्रेशन कमांड का उपयोग शुरू किया गया। मेरा सवाल है, ऊपर और नीचे विधि। मुझे लगता है कि डाउन विधि का उद्देश्य सभी निर्भरताओं को हटाना है और टेबल को छोड़ना है यदि वे पहले से ही डेटाबेस में हैं? साथ ही ऊपर विधि को अप विधि से पहले निष्पादित किया जाएगा? अप विधि तब रिवर्स, टेबल/इंडेक्स आदि को बना/अपडेट करें?सी # कोड-पहला माइग्रेशन, ऊपर/नीचे?

कभी-कभी जब मैं इसका उपयोग करता हूं तो डाउन विधि को बहुत सी टेबल मिलती है जो तब गिरा दी जाती हैं? हाल ही में यह कई तालिकाओं को बनाया और गिरा दिया और लगभग एक ही चीज अप विधि में हुई। क्यूं कर?

उत्तर

53

Up विधि आपके वर्तमान कोड माइग्रेशन द्वारा अपेक्षित राज्य में आपके वर्तमान स्थिति (आपके पिछले माइग्रेशन द्वारा प्रतिनिधित्व) से आपके डेटाबेस को अपग्रेड करती है। Down विधि रिवर्स ऑपरेशन करता है - यह वर्तमान माइग्रेशन से सभी परिवर्तनों को हटा देता है और पिछले माइग्रेशन द्वारा अपेक्षित राज्य में डेटाबेस को वापस लाता है। यह माइग्रेशन को स्थापित/अनइंस्टॉल करने जैसा है। जब आप update-database पर कॉल करते हैं तो इनमें से केवल एक विधि निष्पादित की जाती है। Down विधि का उपयोग करने के लिए आपको अपने अपग्रेड के लिए लक्ष्य माइग्रेशन को स्पष्ट रूप से निर्दिष्ट करना होगा। यदि लक्ष्य माइग्रेशन पुराना है, तो माइग्रेशन API स्वचालित रूप से Down विधि का उपयोग करेगा और आपके डेटाबेस को डाउनग्रेड करेगा।

20

बस @ लद्दीस्लाव श्रीन्का को जोड़ने के लिए। मैं() पहली बार के लिए नीचे का उपयोग करने की जरूरत है और मुझे कुछ समय लगा यह काम करने के लिए है, तो:

Update-Database -Target:201407242157114_46 

मेरे पिछले माइग्रेशन 47 (जहां नई सामग्री जोड़ दिया गया है)। डेटाबेस को रोलबैक करने और खराब माइग्रेशन को हटाने के लिए Here's a nice explanation

आशा है कि यह अन्य जादूगर शिक्षकों की मदद कर सकता है :)

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