PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

डिबग कैसे करें:आंतरिक त्रुटि वर्तमान लेनदेन निरस्त कर दिया गया है, लेनदेन ब्लॉक के अंत तक आदेशों को नजरअंदाज कर दिया गया है

ज्यादातर मामलों में इसका मतलब है कि पिछला SQL कथन निष्पादित करने में विफल रहा। इस मामले में आपको यह करना चाहिए:

  1. SQL सक्षम करें लॉगिंग , सेटिंग में पेस्ट करने के लिए निम्न स्निपेट देखें

  2. DEBUG=1 सेट करें , या SQL लॉग नहीं होगा

  3. रनसर्वर फिर से चलाएँ , और आपको कंसोल में सभी SQL क्वेरीज़ देखनी चाहिए

  4. पिछली SQL क्वेरी को सीधे अपने डेटाबेस में निष्पादित करें , तो आपको यह पता लगाना चाहिए कि कौन से प्रश्न विफल हो जाते हैं और फिर आपको उन्हें डीबग करने में सक्षम होना चाहिए - या एक नया प्रश्न खोलना चाहिए जो समस्या का कारण बनने वाली क्वेरी के लिए विशिष्ट हो। SQL क्वेरी को एक-एक करके निष्पादित करने के लिए आप phpMyAdmin, या सीधे एक CLI क्लाइंट, या जो भी डेटाबेस क्लाइंट का उपयोग कर सकते हैं, जब तक कि आपको वह नहीं मिल जाता जिसे कुछ प्यार की आवश्यकता होती है।

SQL लॉगिंग कॉन्फ़िगरेशन:

LOGGING = { 
   'version': 1,
   'disable_existing_loggers': True,
   'formatters': {
       'simple': {
           'format': '%(levelname)s %(message)s',
       },  
   },  
   'handlers': {
       'console':{
           'level':'DEBUG',
           'class':'logging.StreamHandler',
           'formatter': 'simple'
       },  
   },  
   'loggers': {
       'django': {
           'handlers': ['console'],
           'level': 'DEBUG',
       },  
   }   
}

यदि यह कॉन्फ़िगरेशन runserver . के साथ कोई अतिरिक्त कंसोल आउटपुट प्रदान नहीं करता है , फिर बेझिझक django-autocomplete-light's example test_project :

  1. /tmp में इंस्टॉलेशन कमांड को पढ़ें और पेस्ट करें

  2. dir को autocomplete_light_env/src/django-autocomplete-light/test_project में बदलें

  3. test_project/settings.py खोलें , LOGGING . को बदलें ऊपर वाले द्वारा कॉन्फ़िगरेशन

  4. रनरवर और अपना ब्राउज़र खोलें

आपका कंसोल इस तरह दिखेगा:

Validating models...

0 errors found
Django version 1.4.1, using settings 'test_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
DEBUG (0.001) SELECT "django_content_type"."id", "django_content_type"."name", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."model" = taggable  AND "django_content_type"."app_label" = charfield_autocomplete ); args=('taggable', 'charfield_autocomplete')
DEBUG (0.000) 
        SELECT DISTINCT "tagging_tag".id, "tagging_tag".name
        FROM
            "tagging_tag"
            INNER JOIN "tagging_taggeditem"
                ON "tagging_tag".id = "tagging_taggeditem".tag_id
            INNER JOIN "charfield_autocomplete_taggable"
                ON "tagging_taggeditem".object_id = "charfield_autocomplete_taggable"."id"

        WHERE "tagging_taggeditem".content_type_id = 11

        GROUP BY "tagging_tag".id, "tagging_tag".name

        ORDER BY "tagging_tag".name ASC; args=[]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटा हानि के बिना पोस्टग्रेज में अलग-अलग प्रकार के वर्ण का आकार बढ़ाना

  2. इस postgreSQL क्वेरी में क्या गलत है?

  3. बूलियन कॉलम पर SQLAlchemy func.count

  4. SQL उन तत्वों का चयन करता है जहाँ फ़ील्ड का योग N . से कम है

  5. क्या आप पोस्टग्रेज में पहले से मौजूद कॉलम पर अनुक्रम बना सकते हैं?