मैं मैनुअल माइग्रेशन और अपडेट के साथ C # में अपनी परियोजना के लिए EF 6.0 का उपयोग कर रहा हूं। मेरे पास डेटाबेस पर लगभग 5 माइग्रेशन हैं, लेकिन मुझे एहसास हुआ कि अंतिम प्रवास खराब था और मैं यह नहीं चाहता। मुझे पता है कि मैं पिछले माइग्रेशन में रोलबैक कर सकता हूं, लेकिन जब मैं एक नया (फिक्स्ड) माइग्रेशन जोड़ता हूं और अपडेट-डेटाबेस चलाता हूं, तो भी खराब माइग्रेशन लागू होता है।
मैं पिछले माइग्रेशन को रोलबैक करने और फ़ाइल को खराब माइग्रेशन से हटाने का प्रयास कर रहा था। लेकिन फिर, जब मैं नया माइग्रेशन जोड़ने का प्रयास करता हूं, तो डेटाबेस अपडेट करते समय मुझे त्रुटि मिलती है, क्योंकि माइग्रेशन फ़ाइल दूषित है (अधिक विशेष रूप से, कोड की पहली पंक्ति ए से बी तक तालिका का नाम बदल देती है और अगली लाइनें है, ईएफ तालिका को अपडेट करने की कोशिश कर रहा है। नाम A - शायद यह कुछ EF बग है)।
क्या मेरे द्वारा चलाए जा सकने वाली कुछ क्वेरी है, जो EF को कुछ ऐसा बताएगी जैसे "पिछले प्रवास को भूल जाओ जैसे यह कभी अस्तित्व में नहीं था, यह बुरा था"? निकालें-प्रवासन जैसा कुछ।
Edit1
मुझे मेरे लिए अनुकूल समाधान मिला। मॉडल को अच्छे राज्य में बदलना और चलाना Add-Migration TheBadMigration -Force
। यह लागू किए गए माइग्रेशन को अंतिम रूप से पुन: मचान बना देगा।
वैसे भी, यह अभी भी मूल प्रश्न का पूरी तरह से जवाब नहीं देता है। अगर मैं खराब माइग्रेशन के लिए अपडेटडॉटबेस करता हूं, तो मुझे अच्छा तरीका नहीं मिला कि कैसे रोलबैक करूं और बुरे माइग्रेशन को छोड़कर नया माइग्रेशन बनाऊं।
धन्यवाद