प्राप्त करना मैंने अभी एंटीटी फ्रेमवर्क माइग्रेशन स्थापित किया है, एक वर्ग में एक संपत्ति जोड़ा है, और ईएफ माइग्रेशन को एक भंवर दिया है।आरंभिक इकाई फ्रेमवर्क माइग्रेशन स्क्रिप्ट
मेरा विकास डेटाबेस तुरंत अपडेट किया गया था। अब तक सब ठीक है.
अब, मैं इस प्रारंभिक उत्पादन डेटाबेस के लिए माइग्रेशन के उपयोग के लिए एक परिवर्तन स्क्रिप्ट बनाना चाहता हूं। ध्यान दें कि एक पूर्व-मौजूदा डेटाबेस था क्योंकि मैंने इसे किसी मौजूदा प्रोजेक्ट पर लागू किया था।
माइग्रेशन मैं हैं:
PM> Get-Migrations
Retrieving migrations that have been applied to the target database.
201204102238194_AutomaticMigration
201203310233324_InitialCreate
PM>
मैंने सोचा कि मैं का उपयोग कर एक डेल्टा स्क्रिप्ट मिल सकता है निम्नलिखित:
Update-Database -SourceMigration:201203310233324_InitialCreate -TargetMigration:201204102238194_AutomaticMigration -script
हालांकि, मुझे त्रुटि देता है कि:
'201204102238194_AutomaticMigration' is not a valid migration. Explicit migrations must be used for both source and target when scripting the upgrade between them.
बस यह देखने के लिए कि क्या होगा, मैंने दो पैरामीटर (पिछड़ा माइग्रेशन) उलट दिया और मुझे स्क्रिप्ट मिली -force ध्वज (नए कॉलम गिराए गए) को जोड़ने के बाद एलडी की उम्मीद है।
इस प्रथम माइग्रेशन के लिए मुझे स्क्रिप्ट कैसे मिल सकती है?
आपने प्रारंभिक माइग्रेशन कैसे प्राप्त किया? आपके स्वचालित माइग्रेशन में पूरे डेटाबेस के लिए स्क्रिप्ट बनाना चाहिए जो आप नहीं चाहते हैं - मौजूदा डेटाबेस परिणामों पर इस तरह की स्क्रिप्ट को कई त्रुटियों में निष्पादित करना चाहिए। क्या आप इसके बजाय [इस दृष्टिकोण] (http://www.ladislavmrnka.com/2012/03/ef-4-3-migrations-and-existing-डेटाबेस) आज़मा सकते हैं? –
@ Ladislav: मुझे पूरे डेटाबेस के लिए वास्तव में एक स्क्रिप्ट की आवश्यकता नहीं है क्योंकि मेरा पूरा (प्रारंभिक) डेटाबेस पहले ही उत्पादन में है। मैं यह नहीं समझ सकता कि पहले से ही पहले अपडेट में पहले से ही माइग्रेशन का उपयोग करने से पहले, पहले से ही उत्पादन में पहले डेटाबेस से कैसे जाना है। मुझे यकीन है कि माइग्रेशन में कहीं भी मेरी प्रारंभिक डीबी स्कीमा है क्योंकि स्रोत-माइग्रेशन और लक्ष्य माइग्रेशन पैरामीटर को * -force * के साथ रिवर्स करना मेरे नए कॉलम को डीआरओपी करने के लिए एक स्क्रिप्ट बनाता है। मैं इसे प्रारंभिक डेटाबेस से पहले नए पुनरावृत्ति में जाने के लिए नहीं मिल सकता (उन कुछ कॉलम जोड़ें)। –