ruby on rails - config.cache_classes = true affecting type coercion with RubyDBI -
पर्यावरण:
रेल 2.3.2
डीबीआई 0.4.1
डीबीडी / ओडीबीसी 0.2.4 < / P>
परिदृश्य:
मेरे पास एक रेल ऐप होता है जो नियमित एसएसएल डीबी में बाहरी एसक्यूएल डीबी से डाटा का नियमित बैच जॉब्स के माध्यम से आयात करता है। उन बैच की नौकरियां रेल पर्यावरण को लोड करते हुए शुरू होती हैं, फिर रूबीडीबीआई के माध्यम से सीधे डाटाबेस कनेक्शन बनाने के लिए आगे बढ़ें। एक बार जब मैं कनेक्ट हो जाता हूं, तो मैं डेटा को निकालने, मसाज करने, और एक्टिविरकॉर्ड ऑब्जेक्ट का निर्माण करने के लिए चुनिंदा बयान चलाता हूं।
मुझे सिर्फ एक अजीब मुद्दे पर आ गया है, जहां उत्पादन में उत्पादन में भिन्नता है। ऐसा लगता है कि जब config.cache_classes सत्य है, तो डीबीआई वापस लौटा एसक्यूएल डैटईटाइम प्रकार को रूबी डेटटाइम में ठीक से रोक देता है। यहां एक निकाला गया कोड उदाहरण है:
## config.cache_classes = true query = "शीर्ष 1 [EPOLeafNode] का चयन करें। [Lastupdate] AS [last_update] [EPOLeafNode] से" conn = DBI.connect (' डीबीआई: ओडीबीसी: ड्रायवर = फ्री टीडीएस; टीडीएस_विर्सियन = 8.0; सर्वर = एसक्यूएल; डाटाबेस = ईओपी यूआईडी = यूआईडी; पीडब्ल्यूडी = पीडब्ल्यूडी; ') conn.select_one (query) = & gt; ["2008-11-05 20: 53: 26.000"] ## कॉन्फिग क्वैश_क्लस = झूठी क्वेरी = "शीर्ष 1 [ईपीएलएफ़नोड] चुनें। [अंतिम अपडेट] एपी [ईपीएलएफ़नोड] से अंतिम_अनुरूप" conn = डीबीआई.कनेक्ट ('डीबीआई: ओडीबीसी: ड्रायवर = फ्री टीडीएस; टीडीएस_विर्सियन = 8.0; सर्वर = एसक्यूएल; डाटाबेस = ईओपी; यूआईडी = यूआईडी; पीडब्ल्यूडी = पीडब्ल्यूडी; ') conn.select_one (क्वेरी) = & gt; [[बुध, 05 नवंबर 2008 20:53:26 +0000]]
क्या यह एक बग है, या उम्मीद की गई व्यवहार जिसे मैं समझ नहीं पा रहा हूं? क्या मैं इसे ओवरराइड कर सकता हूं, अधिमानतः हमेशा डेटा को जबरन? यदि नहीं, तो डेटा को मालिश करने के सर्वोत्तम तरीके पर कोई विचार है, इसलिए यह विकास और उत्पादन में एक ही परिणाम देता है?
नहीं, यह व्यवहार अपेक्षित बातचीत नहीं है।
एक त्वरित और गंदे समाधान के रूप में, आप स्पष्ट रूप से CAST
को अंतिम प्रारूप फ़ील्ड में एक स्ट्रिंग, जिसे परिवेश। आरबी
दोनों में काम करना चाहिए।
एक साधारण संख्यात्मक प्रकार में रूपांतरण, जैसे यूनिक्स टाइमस्टैम्प, भी काम कर सकता है।
मैं यह नहीं कह सकता कि मूल समस्या क्या है, और मैं रेल / एआर और डीबीआई के एक ही संस्करण पर पुन: उत्पन्न नहीं कर सकता, हालांकि एक अलग बैकएंड के साथ मान्य है। दोनों संकुल में गतिशीलता का एक अच्छा सा है, हालांकि, और एआर आंशिक रूप से लोड हो रहा है, या संशोधित कर रहा है, एक सहायक वर्ग ऐसा नहीं कर सकता जो डीबीआई की अपेक्षा करता है। (कुछ समय पहले, उदाहरण के लिए, पुराने पोस्टग्रेस चालक बंदर के लिए एआर एडेप्टर ने बेस ड्राइवर को पैच किया था, इसे संबंधित डीबीडी के पुराने संस्करणों के लिए तोड़ दिया था।)
Comments
Post a Comment