PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách gỡ lỗi:Lỗi nội bộ giao dịch hiện tại bị hủy bỏ, các lệnh bị bỏ qua cho đến khi kết thúc khối giao dịch

Trong hầu hết các trường hợp, điều này có nghĩa là trước đó Câu lệnh SQL không thực thi được. Trong trường hợp này, bạn nên:

  1. Bật SQL ghi nhật ký , hãy xem đoạn mã sau để dán vào settings.py

  2. Đặt DEBUG =1 hoặc SQL sẽ không được ghi lại

  3. Chạy lại runningerver và bạn sẽ thấy tất cả các truy vấn SQL trong bảng điều khiển

  4. Thực thi các truy vấn SQL cuối cùng trực tiếp trong cơ sở dữ liệu của bạn , sau đó bạn sẽ tìm thấy truy vấn nào không thành công và sau đó bạn có thể gỡ lỗi chúng - hoặc mở một câu hỏi mới dành riêng cho truy vấn gây ra sự cố. Bạn có thể sử dụng phpMyAdmin, hoặc trực tiếp một ứng dụng khách CLI hoặc bất kỳ ứng dụng khách cơ sở dữ liệu nào, để thực hiện từng truy vấn SQL cho đến khi bạn tìm thấy câu hỏi cần yêu cầu.

Cấu hình ghi nhật ký 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',
       },  
   }   
}

Nếu cấu hình này không cung cấp bất kỳ đầu ra bảng điều khiển bổ sung nào với runserver , sau đó vui lòng thử ví dụ của django-autocomplete-light's test_project :

  1. Đọc và dán các lệnh cài đặt trong /tmp

  2. Thay đổi dir thành autocomplete_light_env/src/django-autocomplete-light/test_project

  3. Mở test_project/settings.py , thay thế LOGGING cấu hình bằng cách trên

  4. Chạy và mở trình duyệt của bạn

Bảng điều khiển của bạn sẽ giống như sau:

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. Làm cách nào để xóa dạng xem bảng * hoặc * khỏi cơ sở dữ liệu PostgreSQL?

  2. Xuất Bảng AWS Postgres RDS sang AWS S3

  3. org.postgresql.util.PSQLException:FATAL:xin lỗi, đã có quá nhiều khách hàng

  4. Thiết lập môi trường tối ưu cho PostgreSQL

  5. Cách lọc các truy vấn postgis dựa trên ST_GeometryType