2010-01-14 5 views
13

। मैं रनटाइम के दौरान NHibernate के SchemaUpdate के साथ संयुक्त फ्लुएंट एनएचबेर्नेट के ऑटोमैपिंग का उपयोग कर रहा हूं। प्रत्येक रन पर ऑटोमैपर सभी इकाई वर्गों के लिए मैपिंग बनाता है और SchemaUpdate मौजूदा डेटाबेस में स्कीमा लागू करता है। मैं सुखद आश्चर्यचकित था कि यह एक खाली डेटाबेस के साथ भी सही ढंग से काम करता है। यह अभी तक एक विकास वातावरण में ठीक काम करता है और मुझे बदले में बदले में प्रतिक्रिया देने की इजाजत दी गई है।क्या NHBernate SchemaUpdate उत्पादन कोड में सुरक्षित है? सादगी के लिए

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

(शायद मेरा असली सवाल यह है कि सुरक्षित है यह संयोजन के रूप में इन दोनों उपकरणों का उपयोग किया जाना चाहिए?)

अद्यतन

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

+0

सुरक्षा समस्या लाने के लिए कैटज़ और ग्रेग बीच दोनों के लिए कुडोस। मैंने इसे ध्यान में नहीं लिया था। मैंने अपना अधिकांश समय स्टैंड-अलोन डेस्कटॉप संस्करण पर बिताया है जहां सुरक्षा चिंता का विषय नहीं है। –

उत्तर

12

इसके लिए उत्पादन कोड में चलाने में सक्षम होने के लिए, खाता डेटाबेस जो आपके डेटाबेस से कनेक्ट करने के लिए उपयोग करता है, डेटाबेस डेटाबेस स्कीमा को बदलने की अनुमति होगी।

एनएचबर्ननेट कोड की गुणवत्ता/विश्वसनीयता के बावजूद, अकेले ही आपको इस दृष्टिकोण से रोकना चाहिए।

2

यह इस बात पर निर्भर करता है कि डेटा कितना महत्वपूर्ण है! मुझे संदेह है कि बैंकिंग प्रणाली के लिए यह एक अच्छा विचार है। मुझे एक चीज़ के अलावा अपडेट के साथ कोई समस्या नहीं है। कभी-कभी यह ठीक से नाम नहीं बदलता है। इसके अलावा यह एक ऐसे खाते से कनेक्ट होने वाला एक सुरक्षा जोखिम है जो उस तरह की स्कीमा को संशोधित कर सकता है :)

7

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

दूसरे शब्दों में, बिल्कुल उत्पादन के उपयोग के लिए नहीं।

+1

तो अच्छे विकल्प क्या हैं? कुछ प्रकार के माइग्रेशन? किसी भी अच्छे नेट फ्रेमवर्क के लिए आप इसकी सिफारिश करेंगे? धन्यवाद – andryuha

8

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

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