2012-10-09 9 views
8

मुझे नहीं लगता कि मैं DBIx::Class
के दायरे को समझता हूं क्या मुझे पहले नियमित रूप से SQL के साथ डेटाबेस बनाना है, फिर schemaloader (या मैन्युअल रूप से स्कीमा/परिणामसेट कोड) का उपयोग करें?
या आगे बढ़ने के लिए DBIx::Class बताने और मैन्युअल रूप से कोडित स्कीमा और परिणामसेट से टेबल बनाने का कोई तरीका है?
मैं बी/सी पूछता हूं कि मुझे SQL CREATE TABLE कथन के माध्यम से डेटाबेस बनाने की आवश्यकता है, मेरे पास परिणामस्वरूप कोड कोड में अनिवार्य रूप से डुप्लिकेट किया गया है, या मुझे स्कीमललोडर पर भरोसा करने की आवश्यकता है जो मुझे लगता है कि उत्पादन के लिए अक्षम और अनुचित है।क्या डीबीआईएक्स :: कक्षाएं टेबल बनाने के लिए उपयोग की जा सकती हैं?

उत्तर

13

आप अपने स्कीमा deploy() कर सकते हैं:

my $schema = MyApp::Schema->connect(
      $dsn, 
      $user, 
      $password, 
     ); 
$schema->deploy({ add_drop_table => 1 }); 
बेशक

, ऊपर अपने मौजूदा टेबल छोड़ देंगे :)

10

आप या तो मार्ग जा सकते हैं। आप एक स्कीमा बना सकते हैं और DBIx::Class to analyse it प्राप्त कर सकते हैं, या आप डीबीआईएक्स :: कक्षा build the schema to you प्राप्त कर सकते हैं।

पूर्व को उत्पादन के लिए अक्षम नहीं होना चाहिए, क्योंकि आप डीबीआईएक्स :: कक्षा save the generated code प्राप्त कर सकते हैं ताकि इसे हर रन में विश्लेषण करने की आवश्यकता न हो।

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

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