2008-11-10 5 views
5

मैं विकास चरण में अपने ऐप के लिए परिभाषित स्कीमा के रूप में एनएचबेर्नेट मैपिंग का उपयोग कर रहा हूं और स्कीमा परिभाषा के लिए मैं उत्पन्न करने के लिए NHibernate.Tool.hbm2ddl.SchemaExport() विधि का उपयोग कर रहा हूं एक रचनात्मकता। नाम टाइमस्टैम्प पटकथा फ़ाइलोंएनबीबर्ननेट में कॉन्फ़िगरेशन। जेनरेटस्केमा अपडेटस्क्रिप्ट() डीबी स्कीमा परिवर्तनों का प्रबंधन करने का एक अच्छा तरीका है


var dialect = Dialect.GetDialect(configuration.Properties); 
string[] schemaUpdateScript; 
using (var conn = new SqlConnection(
     configuration.GetProperty("connection.connection_string"))) 
{ 
    conn.Open(); 
    schemaUpdateScript = configuration.GenerateSchemaUpdateScript(dialect, 
          new DatabaseMetadata(conn, dialect)); 
} 

इस के बाद मैं करने के लिए स्कीमा अद्यतन स्क्रिप्ट बचा सकते हैं:

अब, मैं Configuration.GenerateSchemaUpdateScript() पद्धति का उपयोग करके इस तरह डेटाबेस changescripts उत्पन्न करने के लिए विचार किया है।

क्या यह NHibernate में स्कीमा परिवर्तनों का प्रबंधन करने का एक अच्छा तरीका है?

क्या कोई बड़ी कमी है?

उत्तर

0

संक्षेप में - यह निर्भर करता है। मैंने इसे स्क्रिप्ट बनाने के लिए उपयोग किया है जिसे मैंने हाथ से संपादित किया है, लेकिन मुझे यकीन है कि मैंने कहीं पढ़ा है, यह मौजूदा टेबल के लिए नए गैर-शून्य कॉलम नहीं बनाएगा - जो समझ में आता है, एनएचबीरनेट को कैसे पता चलेगा कि कैसे पॉप्युलेट करना है कॉलम?

+0

हाँ, गैर नल एक समस्या है। कॉलम के लिए अनुपलब्ध डिफ़ॉल्ट-मूल्य सुविधा यहां अच्छी होगी, हालांकि। लेकिन वैसे भी ज्यादातर मामलों में एसक्यूएल को हाथ से समायोजित करने के आसपास कोई रास्ता नहीं है। –

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

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