2013-02-06 19 views
5

में परीक्षण डेटाबेस का उपयोग करने का कोई तरीका है उत्प्रेरक का उपयोग करते समय एक dev, test और उत्पादन डेटाबेस निर्दिष्ट करने का कोई तरीका है जैसे आप रेल में करेंगे? मैंने प्रलेखन को देखा है लेकिन मुझे कोई जवाब नहीं मिला है।उत्प्रेरक

+0

क्या आपने [यह] (http://www.catalystframework.org/calendar/2005/19) पढ़ा है? – StarPinkER

उत्तर

4
cpan Catalyst Testing Tutorial

अपनी लाइव आवेदन के लिए दोनों एक "उत्पादन डेटाबेस" और अपने परीक्षण मामलों के लिए एक "परीक्षण डेटाबेस" बनाए रखने के लिए चाहते हो सकता है से संदर्भ के साथ

। अपने मॉडल कक्षा में

डेटाबेस कॉन्फ़िग स्विचन

एक समाधान डेटाबेस विनिर्देश एक वातावरण चर के साथ अधिरोहित जा करने की अनुमति है। उदाहरण के लिए, खुला lib/MyApp/मॉडल/अपने संपादक में MyAppDB.pm और सदृश __PACKAGE__->config(... घोषणा बदलने के लिए:

:

my $dsn = $ENV{MYAPP_DSN} ||= 'dbi:SQLite:myapp.db'; 
__PACKAGE__->config(
    schema_class => 'MyAppDB', 
    connect_info => [ 
     $dsn, 
     '', 
     '', 
     { AutoCommit => 1 }, 

    ], 
); 

तब, जब आप अपने परीक्षण का मामला चलाने के लिए, आप इस तरह के रूप आदेशों का उपयोग कर सकते हैं

$ cp myapp.db myappTEST.db
$ CATALYST_DEBUG = 0 MYAPP_DSN = "dbi: myappTEST.db: SQLite" --lib lib -vt/live_app01.t

DSN केवल जबकि इस संशोधित करेगा साबित परीक्षण मामला चल रहा है। यदि आप MYAPP_DSN पर्यावरण परिवर्तनीय परिभाषित किए बिना अपना सामान्य एप्लिकेशन लॉन्च करते हैं, तो यह उसी डीबीआई के लिए डिफ़ॉल्ट होगा: SQLite: myapp.db पहले।

डेटाबेस कॉन्फ़िग स्विचिंग का उपयोग एकाधिक विन्यास फाइल

लोड हो रहा है कई config वातावरण चर आप अपने डिफ़ॉल्ट (उत्पादन) डेटाबेस कनेक्शन सेटिंग्स ओवरराइड कर सकते हैं के आधार पर फ़ाइलों के लिए Catalyst::Plugin::ConfigLoader रों कार्यक्षमता का उपयोग करके।

myapp.conf के बाद myapp_testing.conf नामित एक अतिरिक्त कॉन्फ़िग फ़ाइल की लोडिंग में अपने परीक्षण स्क्रिप्ट परिणामों में 'परीक्षण' जो कोई पैरामीटर myapp.conf में को पार कर जाएगी करने के लिए $ ENV {MYAPP_CONFIG_LOCAL_SUFFIX} स्थापना।

आपको अपने परीक्षण स्क्रिप्ट के BEGIN ब्लॉक में पर्यावरण चर सेट करना चाहिए ताकि यह सुनिश्चित किया जा सके कि यह आपके उत्प्रेरक अनुप्रयोग से पहले सेट हो गया है।

निम्नलिखित एक DBIx :: क्लास मॉडल mydb नामित और फू नाम के एक नियंत्रक के लिए एक config और परीक्षण स्क्रिप्ट के लिए एक उदाहरण है:

myapp_testing.conf:

<Model::MyDB> 
    <connect_info> 
     dsn dbi:SQLite:myapp.db 
    </connect_info> 
</Model::MyDB> 

यह भी जांच अलग-अलग डेटाबेस का उपयोग करते समय this