PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да отстранявате грешки:Вътрешна грешка текущата транзакция е прекъсната, командите се игнорират до края на блока на транзакция

В повечето случаи това означава, че предишният SQL изразът не успя да се изпълни. В този случай трябва:

  1. Активиране на SQL регистриране , вижте следния фрагмент, който да поставите в settings.py

  2. Задайте DEBUG=1 , или SQL няма да бъде регистриран

  3. Стартирайте runserver отново и трябва да видите всички SQL заявки в конзолата

  4. Изпълнете последните SQL заявки директно във вашата база данни , след това трябва да откриете кои заявки са неуспешни и след това трябва да можете да ги отстраните - или да отворите нов въпрос, който е специфичен за заявката, която причинява проблема. Можете да използвате phpMyAdmin, или директно CLI клиент, или какъвто и да е клиент на база данни, за да изпълнявате SQL заявките една по една, докато намерите тази, която се нуждае от внимание.

Конфигурация на SQL Logging:

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 , тогава не се колебайте да опитате примерен test_project на django-autocomplete-light :

  1. Прочетете и поставете инсталационните команди в /tmp

  2. Променете директорията на autocomplete_light_env/src/django-autocomplete-light/test_project

  3. Отворете test_project/settings.py , заменете LOGGING конфигурация от горния

  4. Runserver и отворете браузъра си

Вашата конзола ще изглежда така:

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. Атрибут за преименуване на PostgreSQL в поле jsonb

  2. SQLalchemy не намира таблица за създаване на външен ключ

  3. Какви са наличните опции за идентифициране и премахване на невалидните обекти в Postgres (напр.:повредени индекси)

  4. Привилегиите на PostgreSQL 8.3 не са актуализирани - грешно използване?

  5. Как мога да стартирам PostgreSQL сървър на Mac OS X?