2013-07-13 8 views
8

के साथ ओरिएंट डीबी के जेडीबीसी ड्राइवर का उपयोग ActiveRecord के साथ ओरिएंट डीबी के जेडीबीसी ड्राइवर का उपयोग करने का सही तरीका क्या है?ActiveRecord

मैं रेलवे 3.2 एप्लिकेशन को ओरिएंटबीबी 1.4 से कनेक्ट करने का प्रयास कर रहा हूं। मैं मणि activerecord-jdbc-adapter स्थापित है, और इस प्रकार database.yml कॉन्फ़िगर किया गया:

development: 
    adapter: jdbc 
    username: admin 
    password: admin 
    driver: com.orientechnologies.orient.jdbc.OrientJdbcDriver 
    url:  jdbc:orient:local:db/test_db2 

मैं इस प्रकार OrientDB के JDBC ड्राइवर लोड:

# in config/application.rb: 
require '/home/myuser/jars/orientdb-jdbc-1.4.0-all.jar' 

जब आवेदन शुरू होता है (rails s का प्रयोग करके) निम्नलिखित अपवाद उत्पन्न की जा रही है :

java.lang.NullPointerException 
    at arjdbc.jdbc.RubyJdbcConnection.unmarshalResult(RubyJdbcConnection.java:1187) 
    at arjdbc.jdbc.RubyJdbcConnection.set_native_database_types(RubyJdbcConnection.java:537) 
    at arjdbc.jdbc.RubyJdbcConnection$INVOKER$i$0$0$set_native_database_types.call(RubyJdbcConnection$INVOKER$i$0$0$set_native_database_types.gen) 
    ... 

क्या मेरी कॉन्फ़िगरेशन में कुछ याद आ रही है? ActiveRecord के साथ ओरिएंट डीबी के जेडीबीसी ड्राइवर का उपयोग करने का सही तरीका क्या है?

+0

क्या आप इस कार्यान्वयन के साथ सफल हुए थे? क्या आप एक समाधान दृष्टिकोण की सिफारिश कर सकते हैं। धन्यवाद... – Xdrone

उत्तर

1

जबकि activerecord-jdbc-adapter (सैद्धांतिक रूप से) किसी भी जेडीबीसी संकलक चालक का समर्थन करता है, यह एपीआई का उपयोग करता है और कुछ धारणाएं करता है जो कुछ के लिए इतना अच्छा काम नहीं कर सकता है। Esp। ओरिएंटब-जेडीबीसी (कम से कम संस्करण 1.4) जैसी पूरी तरह से अनुपालन करने वाले ड्राइवरों के साथ नहीं है।

इस मामले में ए आर-JDBC DB मेटा डेटा से समर्थित प्रकार को हल करने की कोशिश करता है: http://git.io/s7g47A लेकिन जब से metadata.getTypeInfo() एक अप्रत्याशित null रिटर्न एक वास्तविक ResulSet वस्तु के बजाय सभी बुरी तरह विफल रहता है। रूबी में native_database_types विधि को ओवरराइड करके और/या एआर-जेडीबीसी के पक्ष में कुछ अतिरिक्त कोड ओवरराइड करके "शून्य" प्रकारों को संभालने में यह सुधार किया जा सकता है - हालांकि ओरिएंट डीबी के "ड्राइवर" के लिए यह अभी भी एआर-जेडीबीसी के साथ पूरी तरह कार्यात्मक नहीं हो सकता है। .. एआर-जेडीबीसी एक्सटेंशन के लिए एक बहुत अच्छा फिट लगता है (मानते हैं कि ओरिएंट डीबी एसक्यूएल को संभाल सकता है जो ActiveRecors/AREL उत्पन्न करेगा)।