28

ईएफ परियोजनाओं में, स्वचालित माइग्रेशन सक्षम करने के लिए कोई सर्वोत्तम अभ्यास है?स्वचालित माइग्रेशन गलत या सत्य सक्षम है?

अधिक घोषणा:

हमारी टीम में एक मॉडल हम आम तौर पर चलाने के संशोधित करने के बाद "ऐड-माइग्रेशन" और "अद्यतन-databse" पैकेज प्रबंधक कंसोल में आदेश। यह त्रुटि को जन्म देती है जब अन्य डेवलपर्स प्रोजेक्ट को चलाने:

"डेटाबेस नहीं छोड़ा जा सकता है क्योंकि यह उपयोग में है"

हर बार जब यह पहली संशोधक Check In पूरी परियोजना और दूसरों GET संशोधित करने के लिए होना चाहिए होता है वस्तुओं। कई मामलों में हम पहले से बनाए गए मॉडल और माइग्रेशन में जांच नहीं करना चाहते हैं!

यह स्थिति परेशान है, क्या इस तरह की समस्याओं के लिए कोई समाधान है। अग्रिम धन्यवाद।

उत्तर

41

स्वचालित माइग्रेशन आपके लिए सभी जादू करते हैं लेकिन वे सख्त संस्करण की अनुमति नहीं देते हैं (आपके पास प्रत्येक संस्करण के लिए विशेष निश्चित माइग्रेशन नहीं है)। सख्त संस्करण के बिना आप अपने डेटाबेस के संस्करण को ट्रैक नहीं कर सकते हैं और आप स्पष्ट उन्नयन नहीं कर सकते हैं (आप बिल्कुल डाउनग्रेड नहीं कर सकते हैं)।

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

"डेटाबेस नहीं छोड़ा जा सकता है क्योंकि यह उपयोग में है"

ऐसा लगता है कि आप साझा डेटाबेस = शो डाट काम कर रहे हैं। प्रत्येक डेवलपर को अपने डेटाबेस का उपयोग करना चाहिए।

लेकिन मॉडल और माइग्रेशन को पहले से ही बनाए गए नहीं देखना चाहते हैं!

यह एक सर्वोत्तम अभ्यास है और यदि आप कोड आधारित माइग्रेशन के साथ जारी रखना चाहते हैं तो आपको इसका पालन करना होगा। Btw। निरंतर एकीकरण में एक निरंतर अभ्यास है - निरंतर एकीकरण में आपको प्राप्त करने के तुरंत बाद सफलतापूर्वक बनाया गया है और परीक्षण पास हो गया है।

+0

धन्यवाद। हाँ, हम एक साझा डीबी पर काम कर रहे हैं। क्या आप हमें बता सकते हैं कि हम अपने डेटाबेस का उपयोग कैसे शुरू कर सकते हैं। (टेक्स्ट, आलेख, किताबें, ...किसी भी सलाह की सराहना की जाएगी!) –

+4

आप किस सलाह की तलाश कर रहे हैं? बस डेटाबेस सर्वर को स्थानीय रूप से स्थापित करें या साझा सर्वर पर प्रति डेवलपर डीबी का उपयोग करें। पूर्व मामले में आपको केवल स्थानीय मशीन पर कनेक्शन स्ट्रिंग में 'डेटा स्रोत' को बदलने की आवश्यकता है और प्रत्येक डेवलपर के पास एक ही नाम के साथ अपना डेटाबेस होगा। बाद के मामले में प्रति डेवलपर कनेक्शन स्ट्रिंग की आवश्यकता होती है ताकि आपको यह सुनिश्चित करना होगा कि स्रोत नियंत्रण में डेवलपर विशिष्ट कनेक्शन स्ट्रिंग को संग्रहीत करने से बचने के लिए कुछ चेक-इन नीतियां। –

+0

इसलिए हमें किसी भी साझा डेटाबेस की आवश्यकता नहीं है, ठीक है! मैंने ** डेटा स्रोत = (स्थानीय) ** सेट किया है –

10

से: टीम वातावरण के लिए http://msdn.microsoft.com/en-us/data/jj554735.aspx

सिफ़ारिश

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

संबंधित मुद्दे