c# - मतद - वोटिंग मशीन 2017




विभिन्न मशीनों से निर्माण करते समय कोड पहले डीबीमिगरेटर त्रुटि का कारण बनता है (3)

हमारे पास एससीएम के तहत एक परियोजना है। जब मैं इसे अपनी मशीन से बनाता हूं और msdeploy के माध्यम से रिमोट सर्वर पर प्रकाशित करता हूं, तो सब कुछ ठीक काम करता है।

जब मेरे सहयोगी एक ही प्रोजेक्ट के साथ एक ही चीज की कोशिश करता है, तो रिमोट सर्वर इकाई ढांचे पर एससीएम से ताजा खींच लिया जाता है 4.3.1 DbMigrator फेंकता है:

स्वचालित माइग्रेशन लागू नहीं किया गया था क्योंकि इसका परिणाम डेटा हानि होगा।

जैसा कि यह पता चला है, ऐसा लगता है कि वह व्यक्ति जो दूरस्थ सर्वर पर प्रारंभिक प्रकाशन बनाता है वह "विजेता" है। अगर हम दूरस्थ सर्वर पर डेटाबेस छोड़ देते हैं, तो मेरा सहयोगी प्रकाशित कर सकता है और मैं लॉक हो जाता हूं। मेरे प्रकाशनों के परिणामस्वरूप ऊपर एक ही त्रुटि है।

DbMigrator लिए कॉन्फ़िगर कुछ ऐसा दिखता है:

        var dbMgConfig = new DbMigrationsConfiguration()
        {
            AutomaticMigrationsEnabled = true,
            //***DO NOT REMOVE THIS LINE, 
            //DATA WILL BE LOST ON A BREAKING SCHEMA CHANGE,
            //TALK TO OTHER PARTIES INVOLVED IF THIS LINE IS CAUSING PROBLEMS    
            AutomaticMigrationDataLossAllowed=false,
            //***DO NOT REMOVE THIS LINE,
            ContextType = typeof(TPSContext),
            MigrationsNamespace = "TPS.Migrations",
            MigrationsAssembly = Assembly.GetExecutingAssembly()
        };

मुझे लगता है कि इसकी नई तालिका __MigrationHistory और अपनी पंक्तियों में संग्रहित गंदा लग रही लंबी हेक्स स्ट्रिंग के साथ कुछ करने के लिए कुछ है।

मैं जीने के लिए प्रकाशन के लिए पूर्ण जिम्मेदारी नहीं लेना चाहता हूं। मैं किसके लिए देख सकता हूं?


मुझे एक ही त्रुटि मिलती है इसलिए मैंने एक स्क्रिप्ट उत्पन्न की और क्वेरी विश्लेषक में इसे चलाया। यह एक महत्वपूर्ण लंबाई समस्या साबित होता है:

चेतावनी! अधिकतम कुंजी लंबाई 900 बाइट्स है। इंडेक्स 'पीके_डीबीओ .__ माइग्रेशन हिस्ट्री' की अधिकतम लंबाई 1534 बाइट है। बड़े मूल्यों के कुछ संयोजन के लिए, सम्मिलित / अद्यतन ऑपरेशन विफल हो जाएगा।

ऐसा लगता है कि EntityFramework टीम को इसके बारे में पता है:

http://entityframework.codeplex.com/workitem/1216

यकीन नहीं है कि इससे क्या समस्याएं पैदा होंगी .....


मुझे भी इस समस्या का सामना करना पड़ा है। विचित्र रूप से, प्रश्न में तालिका में बिल्कुल कोई डेटा नहीं है, यानी यह खाली है, कुछ ऐसा है जो कोड फर्स्ट यह जांचने पर भी प्रतीत नहीं होता है कि अगर यह माइग्रेशन लागू करता है, तो डेटा हानि होगी।


 public Configuration()
        {
            AutomaticMigrationsEnabled = true;
            AutomaticMigrationDataLossAllowed = true;
        } 




dbmigrator