sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man felsöker:Internt fel aktuell transaktion avbryts, kommandon ignoreras till slutet av transaktionsblocket

I de flesta fall betyder det att den föregående SQL-satsen kunde inte köras. I det här fallet bör du:

  1. Aktivera SQL loggning , se följande utdrag för att klistra in i settings.py

  2. Ange DEBUG=1 , eller så loggas inte SQL

  3. Kör runserver igen , och du bör se alla SQL-frågor i konsolen

  4. Kör de sista SQL-frågorna direkt i din databas , bör du sedan hitta vilka frågor som misslyckas och sedan bör du kunna felsöka dem - eller öppna en ny fråga som är specifik för den fråga som orsakar problemet. Du kan använda phpMyAdmin, eller direkt en CLI-klient, eller vilken databasklient som helst, för att köra SQL-frågorna en efter en tills du hittar den som behöver lite kärlek.

SQL-loggningskonfiguration:

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',
       },  
   }   
}

Om denna konfiguration inte ger någon ytterligare konsolutgång med runserver , testa sedan django-autocomplete-lights exempel test_project :

  1. Läs och klistra in installationskommandona i /tmp

  2. Ändra dir till autocomplete_light_env/src/django-autocomplete-light/test_project

  3. Öppna test_project/settings.py , ersätt LOGGING konfiguration av den ovan

  4. Kör server och öppna din webbläsare

Din konsol kommer att se ut så här:

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. Ställ in AUTO_INCREMENT värde genom variabel i MySql

  2. rake avbruten! kan inte ladda en sådan fil -- mysql2/mysql2 på El Capitan

  3. Hur skriptar jag en php-fil för att visa en bild som <img src=/img.php?imageID=32 />?

  4. Rails 4:Använd MySql och MongoDB tillsammans