8

मुझे एक समस्या है जो मुझे पूरे वेब के लिए जवाब नहीं मिल सका।ईएफ 4.3 माइग्रेशन - डाउनग्रेड स्क्रिप्ट कैसे तैयार करें?

मैं कोडफर्स्ट ईएफ 4.3.1 एमएसएसक्यूएल के साथ माइग्रेशन का उपयोग कर रहा हूं।

मैंने कई माइग्रेशन जोड़े हैं और अब मैं दो माइग्रेशन के बीच अपग्रेड/डाउनग्रेड के लिए एक स्क्रिप्ट तैयार करना चाहता हूं।

उन्नयन के लिए मैं निम्न आदेश जो सफलतापूर्वक एक उन्नत स्क्रिप्ट reproduces चलाएँ:

PM> Update-Database -Script -SourceMigration:"201205161203310_BlogLimitsAndTableRename" -TargetMigration:"201205161144187_AddPostAbstract" 
Scripting the downgrade between two specified migrations is not supported. 

कोई भी विचार: ढाल मैं निम्न आदेश जो निम्न त्रुटि के साथ विफल चलाने के लिए

PM> Update-Database -Script -SourceMigration:"201205161144187_AddPostAbstract" -TargetMigration:"201205161203310_BlogLimitsAndTableRename" 

हालांकि, मैं डाउनग्रेड स्क्रिप्ट कैसे उत्पन्न कर सकता हूं?

धन्यवाद।

उत्तर

10

ऐसा लगता है कि माइग्रेशन एपीआई अपेक्षा करता है कि आप केवल "अंतिम संस्करण" से डाउनग्रेड करना चाहते हैं।

हैं BlogLimitsAndTableRename अपने सबसे हाल ही माइग्रेशन (पिछले लागू) आप बस चला सकते है:

Update-Database -Script -TargetMigration:"201205161144187_AddPostAbstract" 

यदि यह अपने पिछले प्रवास आपको पहले इसे करने के लिए अपने विकास डेटाबेस में वापस लाना होगा नहीं है:

Update-Database -TargetMigration:"201205161203310_BlogLimitsAndTableRename" 

और अब आप स्क्रिप्ट प्राप्त करने के लिए पहले कमांड का उपयोग करने में सक्षम होना चाहिए।

+0

यह समझ में आता है। कल्पना करें कि आपके पास राज्य 5 में डेटाबेस है और आप 4 से 3 तक डाउनग्रेड करने के लिए स्क्रिप्ट प्राप्त करने का प्रयास करेंगे। फिर डेटाबेस को आसानी से दूषित किया जा सकता है। या तो यह वास्तव में राज्य 4 में डीबी को इंगित करता है या एक स्थानीय रूप से राज्य 4 को धकेलने के बाद आप अपरिवर्तनीय गड़बड़ करने से पहले इसके बारे में सोचते हैं। ओटीओएच इसे कुछ-फोर्स स्विच या बड़ी लाल चेतावनी के साथ समर्थित किया जा सकता है। :) –

+1

मैंने राज्य 5 में डेटाबेस रखने के बारे में सोचा और अब इसे 5 से 2 तक डाउनग्रेड करने के लिए एक स्क्रिप्ट प्राप्त करें। ईएफ माइग्रेशन मुझे 5 से 4 तक डाउनग्रेड करने के लिए मजबूर करता है, फिर 4 से 3 तक डाउनग्रेड करने के लिए और फिर 3 से 2 तक, जबकि मेरी इच्छा है कि एक ऐसी स्क्रिप्ट तैयार करें जिसमें पहले से ही इन सभी डाउनग्रेड्स को वास्तव में निष्पादित करने की आवश्यकता के बिना शामिल हो। (उदाहरण के लिए अपग्रेड के लिए आप राज्य 5 में डेटाबेस प्राप्त कर सकते हैं और 2 से 5 तक अपग्रेड की एक स्क्रिप्ट उत्पन्न कर सकते हैं)। – mayash

+0

या आपके पास राज्य 5 में डेटाबेस हो सकता है और 2 से 4 तक अपग्रेड की एक स्क्रिप्ट तैयार कर सकता है। – mayash

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