मैं इस थ्रेड में कुछ स्पष्टीकरण जोड़ना चाहता हूं:
Update-Database -TargetMigration:"name_of_migration"
आप जो ऊपर कर रहे हैं वह कह रहा है कि आप उन सभी माइग्रेशनों को रोलबैक करना चाहते हैं, जिन्हें आप निर्दिष्ट माइग्रेशन के साथ छोड़ रहे हैं। इस प्रकार, यदि आप GET-MIGRATIONS का उपयोग करते हैं और आप पाते हैं कि आपके पास A, B, C, D, और E हैं, तो इस कमांड का उपयोग करने से E और D आपको C पर ले जाएंगे।
Update-Database -TargetMigration:"C"
इसके अलावा, जब तक कोई भी इसके विपरीत टिप्पणी नहीं कर सकता, मैंने देखा कि आप एक आर्डिनल मान और शॉर्ट-टार्गेट स्विच का उपयोग कर सकते हैं (इस प्रकार, -Target वैसा ही है जैसे -TargetMigration)। यदि आप सभी माइग्रेशन को रोलबैक करना चाहते हैं और शुरू करना चाहते हैं, तो आप इसका उपयोग कर सकते हैं:
Update-Database -Target:0
0, इसके बाद के संस्करण, यहां तक कि FIRST माइग्रेशन भी रोलबैक होगा ( यह एक विनाशकारी कमांड है - सुनिश्चित करें कि आप जानते हैं कि आप इसका उपयोग करने के बाद आप क्या कर रहे हैं! ) - यदि आप ऊपर दिए गए सिंटैक्स का उपयोग करते हैं तो कुछ ऐसा नहीं कर सकते हैं जिसके लिए आपको नाम की आवश्यकता होती है लक्ष्य माइग्रेशन (माइग्रेशन लागू होने से पहले 0 वें माइग्रेशन का नाम मौजूद नहीं है!)। तो उस स्थिति में, आपको 0 (क्रमिक) मान का उपयोग करना होगा। इसी तरह, यदि आपने ए, बी, सी, डी, और ई (उस क्रम में) में माइग्रेशन लागू किया है, तो ऑर्डिनल को ए को संदर्भित करना चाहिए, ऑर्डिनल 2 को बी को संदर्भित करना चाहिए, और इसी तरह। तो बी को रोलबैक करने के लिए आप या तो उपयोग कर सकते हैं:
Update-Database -TargetMigration:"B"
या
Update-Database -TargetMigration:2
अक्टूबर 2019 को संपादित करें:
एक समान प्रश्न पर इस संबंधित उत्तर के अनुसार , सही कमांड -Target
EF Core 1.1 के लिए है जबकि यह -Migration
EF Core 2.0 के लिए है।