मेरी CodeFirst आवेदन में, स्थानीय बनाता है एक app.config झंडा अर्थ है कि उत्पादन में नहीं किया जा रहा है। जब मैं उत्पादन में नहीं हूं तो यह पूरी तरह से nukes और डेटाबेस को पुन: प्रयास करता है। चूंकि मेरे उत्पादन डेटाबेस उपयोगकर्ता को डेटाबेस छोड़ने की अनुमति नहीं है, भले ही मेरा web.config ट्रांसफ़ॉर्म किसी भी तरह से चूक गया हो (इस प्रकार ईएफ डेटाबेस को पुन: बनाने का प्रयास करता है) मेरा उत्पादन डेटाबेस हटाया नहीं जाएगा, और इसके बजाय एक अपवाद फेंक दिया जाएगा।
मेरे कार्यप्रवाह इस प्रकार है:
- चेक बाहर नवीनतम के साथ बदलता
- जल्दी धुआं/प्रतिगमन परीक्षण कोड के उत्पादन शाखा (यह पहले से ही उत्पादन शाखा में कोड जांच करने से पहले किया जाना चाहिए, लेकिन सिर्फ मामले) में
- मेरी उत्पादन डेटाबेस के नवीनतम बैकअप डाउनलोड करें और डेटाबेस अपने स्थानीय कोड बनाया (भले ही यह उत्पादन कोड है, क्योंकि यह स्थानीय यह recr के बीच अपने स्थानीय SQLEXPRESS सर्वर
- भागो Open DBDiff पर इसे स्थापित उत्पादन बैकअप के खिलाफ डेटाबेस खाता है)।
- उत्पन्न स्क्रिप्ट की समीक्षा करें और उत्पादन बैकअप के खिलाफ उन्हें चलाने का प्रयास करें
- कोई त्रुटि नहीं हुई है, डेटाबेस बैकअप के साथ उत्पन्न कोड को ओवरराइट करें और उत्पादन डेटा के खिलाफ परीक्षण करें ताकि यह सुनिश्चित किया जा सके कि सभी डेटा अभी भी बरकरार हैं;
- वास्तविक उत्पादन डेटाबेस पर स्क्रिप्ट चलाएं।
चरण # 2 स्वचालित डेटा मॉडल के आधार पर स्वचालित रूप से एक नया, साफ डेटाबेस बनाता है, इसलिए मुझे हमेशा पता है कि मेरे पास अद्यतित डेटाबेस है जिसमें विकास प्रयासों से कलाकृतियों नहीं हैं जो अभी तक उत्पादन तैयार नहीं हो सकते हैं।
आप वास्तव में क्या देख रहे हैं? सीएफ के साथ आपके डीबी स्कीमा को रिफैक्टर करने के लिए आपके पास * नहीं है। – TheCloudlessSky
यदि आप इसे दूर करते हैं और फिर से बनाते हैं, तो आपको इसे पुन: सक्रिय करने की आवश्यकता नहीं है, लेकिन अन्यथा, आपको माइग्रेशन स्क्रिप्ट लिखना और लागू करना होगा, है ना? अन्यथा यह कोड से मेल नहीं खाएगा। –