155

किसी कारण से, मेरे माइग्रेशन को झुका हुआ/दूषित/जो कुछ भी लगता है। मैं उस बिंदु पर हूं जहां मैं बस शुरू करना चाहता हूं, तो क्या सभी माइग्रेशन को पूरी तरह से पूर्ववत करने, इतिहास को मिटाने और माइग्रेशन कोड को हटाने का कोई तरीका है, इसलिए मैं वापस वर्ग में हूं?इकाई फ्रेमवर्क - प्रारंभ करें - पूर्ववत/रोलबैक सभी माइग्रेशन

उदा) PM> Disable-Migrations या Rollback-Migrations

मैं क्योंकि मैं इसे अब और नहीं मिल सकता है एक मूल प्रवास कदम (अर्थात एक InitialSchema लक्ष्य की तरह कुछ करने के लिए "अद्यतन") नहीं करना चाहती।

उत्तर

331

आप उपयोग करके किसी भी प्रवास करने के रोलबैक कर सकते हैं:

Update-Database -TargetMigration:0 

या समकक्ष: कुछ

Update-Database -TargetMigration:$InitialDatabase 

Update-Database -TargetMigration:"MigrationName" 

आप सभी माइग्रेशन आप उपयोग कर सकते रोलबैक करना चाहते हैं मामले आप डेटाबेस और सभी माइग्रेशन कक्षाओं को भी हटा सकते हैं। अगर, LocalDb का उपयोग करते समय आप स्क्रैच से शुरू बस डाटाबेस एक्सप्लोरर के माध्यम से डेटाबेस को हटाने और फिर पैकेज प्रबंधक कंसोल में enable-migrations -force टाइप करना चाहते हैं

+6

हमेशा की तरह, आप सबसे अच्छा कर रहे हैं। – drzaus

+0

आपने मुझे परेशानी का एक भार बचाया। धन्यवाद। –

+0

अच्छा जवाब! :) – Rushino

8

स्पष्ट है कि,। App_Data फ़ोल्डर के माध्यम से डेटाबेस को न हटाएं या आपके पास निम्नलिखित issue होगा।

+2

के साथ संबोधित करते हुए सावधान रहें क्योंकि यह आपके माइग्रेशन \ Configuration.cs को चेतावनी के बिना ओवरराइट करेगा! – cgatian

+0

चेतावनी के लिए धन्यवाद, मैंने थोड़ी देर के बाद कोड को पहले तरह से बहुत कम कर दिया है, यह आपके कोड को एक बार में रखने के लिए अच्छा है, जगह पर, आपके डेटाबेस के लिए स्रोत नियंत्रण संस्करण है लेकिन मुझे कोई अन्य बड़ा नहीं देखा लाभ और पहले डेटाबेस में वापस स्विच। मैं सभी गेटों को ट्रैक करने के लिए लाल गेट एसक्यूएल तुलना का उपयोग करता हूं। –

1

इकाई की रूपरेखा कोर के लिए:

Update-Database -Migration:0 
Remove-Migration 
संबंधित मुद्दे