आपने टेबल को किस से शुरू करने के लिए हटा दिया? क्या आप इसे फिर से बनाया जाना चाहते हैं?
जटिल समाधान में इससे पहले कि हम मिल तुम सिर्फ एक है कि अपनी मेज उस में बनाने से पहले वापस प्रवास करने के रोल करने -TargetMigration विकल्प का उपयोग करने की कोशिश की है? मुझे एहसास है कि आपको एक टेबल या एफके की अनुक्रमणिका को हटाने की कोशिश करने के बारे में एसक्यूएल त्रुटियां मिलेंगी, लेकिन यह एक शॉट के लायक है। आप इस कमांड update-database -TargetMigration YourOldMigration
का उपयोग कर ऐसा कर सकते हैं। यह आपके माइग्रेशन फ़ाइलों के डाउन() विधियों में पाए गए आदेशों को चलाकर आपके लक्षित माइग्रेशन के बाद लागू सभी माइग्रेशन को वापस लाएगा। यदि आपको SQL त्रुटियां मिल रही हैं तो आप त्रुटियों से बचने के लिए नीचे() विधियों को संशोधित करने का प्रयास कर सकते हैं। सावधान। इसका परिणाम डेटा हानि हो सकता है। यदि ईएफ आपको इसके बारे में चेतावनी देता है और आपको परवाह नहीं है। अपने आदेश को समाप्त करने के लिए फोर्स जोड़ने का प्रयास करें।
वैकल्पिक रूप से और साथ ही ....
आपका माइग्रेशन सिर्फ अपने dbcontext/मॉडलों के लिए अपने डाटाबेस योजना की तुलना द्वारा की गणना नहीं कर रहे हैं। यदि आप एसक्यूएल सर्वर प्रबंधन स्टूडियो में अपना एसक्यूएल एज़ूर डेटाबेस खोलते हैं तो आपको __ माइग्रेशन हिस्ट्री नामक एक टेबल दिखाई देनी चाहिए। यह स्वचालित माइग्रेशन के माध्यम से आपके डीबी पर लागू सभी माइग्रेशन स्टोर करता है।
कृपया शुरू करने से पहले के माध्यम से सभी तरह से पढ़ें। ऐसे कुछ कारक हैं जिन पर आप कूदने से पहले विचार करना चाहेंगे। मान लें कि आपने पहले से ही इसका उपयोग नहीं किया है, आपको मूल रूप से अपनी तालिका बनाने वाले परिवर्तन सेट के लिए एक पंक्ति मिलनी चाहिए। उस पंक्ति को हटाएं। अब ईएफ स्वचालित माइग्रेशन सोचेंगे कि उस बदलाव को अभी तक आपके डीबी पर लागू नहीं किया गया है। यदि आप अद्यतन-डेटाबेस चलाते हैं तो इसे इसे आजमाएं और फिर से चलाएं।
आपको लगता है कि माइग्रेशन फ़ाइल यह कोशिश करते हैं और करेंगे में अन्य परिवर्तन था उन्हें भी फिर से चलाने के। यह सभी प्रकार की एसक्यूएल त्रुटियों का कारण बन सकता है। आप शायद उन सभी परिवर्तनों को मैन्युअल रूप से रोल करना चाहते हैं जो उस माइग्रेशन का हिस्सा थे। डेटा हानि के बारे में चिंतित? डेटा समाप्त करने के बाद तक मैन्युअल रूप से बनाई गई तालिका में डेटा कॉपी करने का प्रयास करें। काम करने के लिए माइग्रेशन प्राप्त करने के बाद आप डेटा को अपनी नई टेबल/कॉलम में कॉपी कर सकते हैं।
डबल विकल्प। यदि आप विकास में बहुत दूर नहीं हैं और आपको डेटा हानि के बारे में बहुत अधिक चिंताएं नहीं हैं तो पूरे डेटाबेस को छोड़ना और स्वचालित माइग्रेशन को इसे स्क्रैच से फिर से बनाना आसान हो सकता है।
आशा है कि आप वहाँ हो जाता है
स्रोत
2012-12-20 12:31:21