2012-09-25 19 views
20

का उपयोग कर रहा है: रेल 3.0.3 और पोस्टग्रेस्क्ल के साथ Heroku का उपयोग कर।PGError: त्रुटि: वर्तमान लेनदेन

मैं इसी प्रकार के कई अपवाद प्राप्त होते रहे हैं: मेरे ऐप althroughout

A ActiveRecord::StatementInvalid occurred in home#index: 

    PGError: ERROR: current transaction is aborted, commands ignored until end of transaction block 
: SELECT "calculation_types".* FROM "calculation_types" 
    .bundle/gems/ruby/1.9.1/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract_adapter.rb:202:in `rescue in log' 

घटित लेकिन हमेशा जब मैं इस मामले में के रूप में प्रदर्शन

calculation_type = CalculationType.find(params[:id]) 

या, इसी तरह के सुपर सरल, database- अनुरोध।

(जब मैं यह Heroku पर अपलोड से) जवाहरात की मेरी सूची:

Installing rake (0.9.2.2) 
    Installing abstract (1.0.0) 
    Installing activesupport (3.0.3) 
    Installing builder (2.1.2) 
    Installing i18n (0.6.1) 
    Installing activemodel (3.0.3) 
    Installing erubis (2.6.6) 
    Installing rack (1.2.5) 
    Installing rack-mount (0.6.14) 
    Installing rack-test (0.5.7) 
    Installing tzinfo (0.3.33) 
    Installing actionpack (3.0.3) 
    Installing mime-types (1.19) 
    Installing polyglot (0.3.3) 
    Installing treetop (1.4.10) 
    Installing mail (2.2.19) 
    Installing actionmailer (3.0.3) 
    Installing arel (2.0.10) 
    Installing activerecord (3.0.3) 
    Installing activeresource (3.0.3) 
    Installing acts_as_tree_rails3 (0.1.0) 
    Installing breadcrumbs_on_rails (2.2.0) 
    Installing yamler (0.1.0) 
    Installing configatron (2.9.1) 
    Installing daemons (1.1.9) 
    Installing eventmachine (1.0.0) with native extensions 
    Installing exception_notification (2.4.1) 
    Installing friendly_id (4.0.0.beta12) 
    Installing i18n_routing (0.6.1) 
    Installing thor (0.14.6) 
    Installing railties (3.0.3) 
    Installing jquery-rails (1.0.19) 
    Installing pg (0.14.1) with native extensions 
    Installing postgres-pr (0.6.3) 
    Installing rack-rewrite (1.0.2) 
    Installing rack-timeout (0.0.3) 
    Using bundler (1.0.7) 
    Installing rails (3.0.3) 
    Installing thin (1.5.0) with native extensions 
    Installing time_diff (0.2.2) 

तथ्य

  • त्रुटियों रुक-रुक कर रहे हैं और मैं उन्हें पुन: पेश नहीं कर सकते।
  • यह जब खोज इंजन बोट्स पेज

प्रश्न

Q1 तक पहुँचने का प्रयास समय के सबसे पर हो रहा है। मुझे यह भी नहीं पता कि यह कहां शूटिंग में परेशानी शुरू करनी है (मेरे कोड के अन्य हिस्सों के लिए आपको क्या चाहिए?)। मेरा पहला कदम क्या होना चाहिए?

प्रश्न 2। क्या रेल 3.0.3 और पोस्टग्रेस्क्ल के साथ कोई ज्ञात समस्या है?

  • शूट करने में मेरी सहायता करने के लिए आपको और क्या चाहिए?
+0

'पैरा' से पहले ':' को हटाएं, इसे 'गणना' टाइप = गणना प्रकार टाइप करें (पैराम्स [: आईडी]) ' – nmott

+0

धन्यवाद, लेकिन वास्तव में पाठ में केवल एक प्रकार का था (मैंने नहीं किया था कॉपी और पेस्ट करें) ताकि वास्तव में कोड में मौजूद न हो। मैंने इसे अब अपने प्रश्न से हटा दिया है। – Christoffer

+0

यदि आप ActiveRecord :: लेनदेन का उपयोग कर रहे हैं तो चेकआउट http://apidock.com/rails/ActiveRecord/Transactions/ClassMethods –

उत्तर

14

यह त्रुटि आपकी वास्तविक समस्या कभी नहीं है। ऐसा इसलिए होता है क्योंकि आप एक लेनदेन में एक कथन भेजते हैं जो अपस्ट्रीम त्रुटि के कारण पहले ही विफल हो चुका है। यदि आप इनमें से बहुत सी त्रुटियों को देखते हैं तो आप स्ट्रीम में पहली त्रुटि खोजने के लिए अपने लॉग में वापस जाना चाहते हैं, और यह एक अलग त्रुटि होगी।

इसे ढूंढें, और इसे ठीक करें। ध्यान दें कि इसका मतलब यह है कि आप अन्य त्रुटियों के बाद लगातार लेनदेन कर रहे हैं। अन्य त्रुटियां हैं जहां समस्याएं झूठ बोलती हैं।

+10

मुझे रेक डीबी चलाने की आवश्यकता है: परीक्षण: मेरी समस्या को ठीक करने के लिए तैयार करें। मुझे उम्मीद है इससे किसी को सहायता मिलेगी। –

+1

मुझे कारण पता है। लेकिन इसे कैसे पास किया जाए? लेनदेन को कैसे रोकें और बाहर निकलें? मुझे कारण की तलाश करने की आवश्यकता नहीं है। बस इसके राज्य से बाहर निकलें। – Green

0

क्या आप बिना किसी त्रुटि के CalculationType.all या CalculationType.first कर सकते हैं?

आप इस मॉडल से कुछ डेटा तक पहुंच सकते हैं, तो अपनी मेज reindexing समस्या को ठीक कर सकता है, इस प्रयास करें:

REINDEX TABLE <table_name> 

या रेल कंसोल में:

ActiveRecord::Base.connection.execute("reindex table <table_name>") 

मैं एक ऐसी ही समस्या थी थोड़ी देर पहले, उम्मीद है कि यह मदद करता है।

18

मैंने अभी अपना सर्वर पुनरारंभ किया है। इसने लेनदेन रद्द कर दिया।

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