दिलचस्प पोस्ट
एफएफपीएजी का इस्तेमाल करते हुए एक वीडियो में एक नया ऑडियो (मिश्रण नहीं) कैसे जोड़ें? एक बार में कई अपवाद पकड़ो? AngularJS में यूनिट टेस्ट पृथक स्कोप निर्देशक कैसे करें MVVMCross एक MvxBindableListView के भीतर ViewModel बदल रहा है पैकेज नामस्थान के लिए ऑब्जेक्ट जोड़ें मैं अजगर में एक सूची को कैसे उलटा सकता हूं? वसंत बूट एक्ट्यूएटर आवेदन उबंटू वीपीएस पर शुरू नहीं होगा कोकोसडीडी संसाधन टेम्पलेट के साथ ng- शामिल नोड बदलें? अपने कक्षों में पाठ की मात्रा की परवाह किए बिना तालिका स्तंभ चौड़ाई स्थिर सेट करें? गतिशील स्तंभ बाध्यकारी के साथ jqgrid के लिए कस्टम फॉर्मेटर कैसे जोड़ें मैं C # में एक यादृच्छिक इंटेल नंबर कैसे उत्पन्न करूं? एक बूटस्ट्रैप उत्तरदायी पृष्ठ में कैसे एक div को केन्द्रित करें स्वचालित रूप से वेबक्लिएन्ट के माध्यम से gzip प्रतिक्रिया को खारिज करें। डाउनलोडडाटा एक ऐडब्लूएस लैम्ब्डा फ़ंक्शन, एक और कॉल कर सकता है

उत्पादन में इकाई फ़्रेमवर्क (कोड पहले) माइग्रेशन का उपयोग करना

मैं बस हमारी परियोजना के लिए ईएफ माइग्रेशन का उपयोग कर रहा हूं, और विशेष रूप से रिलीज के बीच उत्पादन में स्कीमा परिवर्तन करने के लिए।

मैंने देखा है कि DbMigration क्लास का उपयोग करते हुए रन-टाइम पर इन माइग्रेशन को चलाने के लिए एक एपीआई है, लेकिन मुझे कोई विशेष उदाहरण नहीं मिल सकता है।

आदर्श रूप से, मैं प्रत्येक डेटाबेस परिवर्तन के लिए एक DbMigration फ़ाइल DbMigration , और उन परिवर्तनों के लिए जो आवेदन पर स्वचालित रूप से लागू किया जाएगा, वर्तमान संस्करण से नवीनतम संस्करण तक शुरू हो जाएगा।

Solutions Collecting From Web of "उत्पादन में इकाई फ़्रेमवर्क (कोड पहले) माइग्रेशन का उपयोग करना"

एक डाटाबेस इनिशियलाइज़र है, आप स्टार्टअप पर नवीनतम संस्करण के लिए माइग्रेशन प्राप्त करने के लिए उपयोग कर सकते हैं (या बेहतर, डबिनेइलाइज़र पहली डीबी एक्सेस पर लात आएगा), MigrateDatabaseToLatestVersion , आप इसे इस तरह प्रयोग करते हैं:

 Database.SetInitializer<ObjectContext>( new MigrateDatabaseToLatestVersion<ObjectContext, Configuration>()); 

प्रत्येक माइग्रेशन के लिए एक फ़ाइल होने पर, यदि आप स्वचालित माइग्रेशन को सक्षम करते हैं तो आप उन्हें अपने प्रोजेक्ट की मूल में Migrations फ़ोल्डर में (डिफ़ॉल्ट रूप से) मिलेंगे।

उदाहरण के साथ प्रासंगिक जानकारी, यहां: http://weblogs.asp.net/fredriknormen/archive/2012/02/15/using-entity-framework-4-3-database-migration-for-any-project.aspx

यह भी काम करता है:

 var configuration = new MyDbContextConfiguration(); configuration.TargetDatabase = new DbConnectionInfo( database.ConnectionString, database.ProviderName); var migrator = new DbMigrator(configuration); migrator.Update(); 

आप कॉल भी कर सकते हैं:

 migrator.GetPendingMigrations(); 

माइग्रेशन की एक सूची प्राप्त करने के लिए इसे लागू करने की आवश्यकता है

चूंकि आपने यह निर्दिष्ट नहीं किया है कि आप कौन सी विज़ुअल स्टूडियो संस्करण का उपयोग कर रहे हैं, या डाटाबेस, मैं यहां एक उत्तर जोड़ूंगा कि यह कहने के लिए कि माइक्रोसॉफ्ट के एसक्यूएल सर्वर के साथ वीएस2015 में, यह अब "प्रकाशन" उपकरण का उपयोग करना आसान नहीं है।

आपको एपीआई के बारे में चिंता करने की जरूरत नहीं है। बस स्थानीय रूप से अपना काम करें, अपने मॉडल को बदलकर, माइग्रेशन आदि लागू करें, फिर जब आप रिलीज / परीक्षण सर्वर को बाहर निकालना चाहते हैं, तो प्रकाशित टूल का उपयोग करें।

आप स्थानीय रूप से किसी भी माइग्रेशन को लागू करने का चयन कर सकते हैं, जिस पर पहली बार रिमोट सर्वर पर एप्लिकेशन शुरू हो गया है।

एक बार आपके सभी माइग्रेशन और स्थानीय रूप से किए गए सभी (आपके देव एंव में प्राप्य) हो तो आप प्रकाशित करें (प्रोजेक्ट पर राइट क्लिक करें, "प्रकाशित करें …" पर क्लिक करें "Execute Code First Migrations (एप्लिकेशन स्टार्टअप पर चलता है)" चेक बॉक्स को चेक करें "सेटिंग्स" टैब और फिर यह माइग्रेशन को पहली बार ऐप पर पहुंचाएगा (इसलिए पहली बार थोड़ी देर होगी)।

वेब-तैनाती का उपयोग करके वेब को प्रकाशित करें

गाइड: https://msdn.microsoft.com/en-us/library/dd465337(v=vs.110).aspx

मैंने ये सब सीखा क्योंकि मुझे इसे विंडोज़ 2012 सर्वर से करना था: http://www.sherweb.com/blog/how-to-install-webdeploy-on-windows-server-2012/

सौभाग्य!

मैं यह नियंत्रित करना चाहता हूं कि माइग्रेशन कोड में स्पष्ट रूप से चलते हैं और बहुत सारे खोज के बाद मैं डीबीसी कॉन्फ़िगरेशन क्लास या स्वचालित माइग्रेशन की आवश्यकता के बिना निम्न तकनीक विकसित करने में कामयाब रहा हूं:

 public static void RunMigration(this DbContext context, DbMigration migration) { var prop = migration.GetType().GetProperty("Operations", BindingFlags.NonPublic | BindingFlags.Instance); if (prop != null) { IEnumerable<MigrationOperation> operations = prop.GetValue(migration) as IEnumerable<MigrationOperation>; var generator = new SqlServerMigrationSqlGenerator(); var statements = generator.Generate(operations, "2008"); foreach (MigrationStatement item in statements) context.Database.ExecuteSqlCommand(item.Sql); } } 

और अगर हमारे पास इस तरह माइग्रेशन था:

 public class CreateIndexOnContactCodeMigration : DbMigration { public override void Up() { this.CreateIndex("Contacts", "Code"); } public override void Down() { base.Down(); this.DropIndex("Contacts", "Code"); } } 

हम इसे इस तरह प्रयोग करेंगे:

 using (var dbCrm = new CrmDbContext(connectionString)) { var migration = new CreateIndexOnContactCodeMigration(); migration.Up(); dbCrm.RunMigration(migration); } 

सादर।