चूंकि आपका उत्पादन डेटाबेस ईएफ 4.1 के साथ बनाया गया था, इसलिए आपको Migrations के साथ उपयोग के लिए तैयार होने के लिए थोड़ा सा काम करने की आवश्यकता होगी। एक dev environemnt में चल रहे अपने वर्तमान उत्पादन कोड की एक प्रति के साथ शुरू करें। सुनिश्चित करें कि dev डेटाबेस मौजूद नहीं है।
- परियोजना माइग्रेशन के साथ एफई 4.3 (या बाद) का उपयोग करने और उत्पादन वर्तमान में कैसा दिखता स्नैपशॉट के लिए आरंभिक माइग्रेशन बनाने अपग्रेड
।
Update-Package EntityFramework
Enable-Migrations
Add-Migration InitialCreate
माइग्रेशन कोड मिलान के साथ अपने डेटाबेस initializers बदलें।
बीज डेटा के लिए, Migrations\Configuration.cs
फ़ाइल के Seed()
विधि में जोड़ें। ध्यान दें कि प्रारंभकर्ताओं में Seed()
विधि के विपरीत, यह विधि हर बार Update-Database
कहलाती है। इसे पंक्तियों को अपडेट करने की बजाय पंक्तियों को अपडेट करने की आवश्यकता हो सकती है (बीज डेटा रीसेट करें)। AddOrUpdate()
विधि इसके साथ सहायता कर सकती है।
चूंकि आपकी अनूठी अनिश्चितता अब माइग्रेशन के साथ बनाई जा सकती है, इसलिए आपको इन्हें प्रारंभिक क्रिएट माइग्रेशन की Up()
विधि में जोड़ना चाहिए। आप विधि का उपयोग करके या CreateIndex()
विधि को कॉल करके CreateTable()
कॉल से उन्हें चेन कर सकते हैं।
प्रारंभिकरण के दौरान माइग्रेशन चलाने के लिए अब आप MigrateDatabaseToLatestVersion प्रारंभकर्ता का उपयोग कर सकते हैं।
अपने उत्पादन वातावरण को बूटस्ट्रैप करने के लिए एक स्क्रिप्ट प्राप्त करें।
Update-Database -Script
स्क्रिप्ट उत्पन्न हो जाता है कि से, आप के बाद से टेबल aready मौजूद लगभग सब कुछ नष्ट करने के लिए चाहता हूँ। जिन हिस्सों की आपको आवश्यकता होगी वे CREATE TABLE [__MigrationHistory]
और INSERT INTO [__MigrationHistory]
कथन हैं।
वैकल्पिक रूप से, EdmMetadata
तालिका को छोड़ दें क्योंकि इसकी अब आवश्यकता नहीं है।
एक बार जब आप इन चीजों को करते हैं, तो आपको माइग्रेशन के साथ जाने के लिए अच्छा होना चाहिए। नए डेवलपर्स स्क्रैच से डेटाबेस बनाने के लिए Update-Database
चला सकते हैं, और आप अतिरिक्त माइग्रेशन लागू करने के लिए उत्पादन के विरुद्ध Update-Database
(या माइग्रेशन प्रारंभकर्ता का उपयोग करें) चला सकते हैं।
यह बहुत अच्छा है! बहुत बहुत धन्यवाद! Idempotency के लिए –
+1। –
क्षमा करें प्रक्रिया इतनी शामिल है। हमने 4.3 में इंटिलाइजर्स से माइग्रेशन में जाना आसान बना दिया - शुरुआतकर्ता मूल रूप से आपके लिए यह हिस्सा करते हैं। दुर्भाग्यवश, 4.2 और उससे नीचे के लोगों के उन्नयन के लिए हम इतना कुछ नहीं कर सकते थे। खैर, अन्य तो उनके StackOverflow सवालों का जवाब दें। ;) – bricelam