sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan fejlsøges:Intern fejl aktuel transaktion afbrydes, kommandoer ignoreret indtil slutningen af ​​transaktionsblok

I de fleste tilfælde betyder det, at den forrige SQL-sætningen kunne ikke udføres. I dette tilfælde skal du:

  1. Aktiver SQL logning , se følgende uddrag for at indsætte i settings.py

  2. Indstil DEBUG=1 , eller SQL bliver ikke logget

  3. Kør runserver igen , og du bør se alle SQL-forespørgsler i konsollen

  4. Udfør de sidste SQL-forespørgsler direkte i din database , bør du så finde, hvilke forespørgsler der mislykkes, og så skulle du være i stand til at fejlsøge dem - eller åbne et nyt spørgsmål, som er specifikt for den forespørgsel, der forårsager problemet. Du kan bruge phpMyAdmin, eller direkte en CLI-klient, eller hvilken som helst databaseklient, til at udføre SQL-forespørgslerne én efter én, indtil du finder den, der har brug for lidt kærlighed.

SQL-logging-konfiguration:

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

Hvis denne konfiguration ikke giver yderligere konsoludgang med runserver , så er du velkommen til at prøve django-autocomplete-lights eksempel test_projekt :

  1. Læs og indsæt installationskommandoerne i /tmp

  2. Skift dir til autocomplete_light_env/src/django-autocomplete-light/test_project

  3. Åbn test_project/settings.py , erstat LOGGING konfiguration af ovenstående

  4. Kør server og åbn din browser

Din konsol vil se sådan ud:

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. Oracle Create Table AS og tabelkommentarer og kolonnekommentarer

  2. Hvordan flettes en gruppe af poster i oracle?

  3. Gengivelse af kinesiske/UTF8-tegn i MySQL Vælg ved hjælp af PuTTY &kommandolinjeklient

  4. Vis data fra MYSQL; SQL-sætningsfejl