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

Django cố định không thành công, cho biết DatabaseError:giá trị quá dài đối với ký tự loại thay đổi (50)

Cập nhật:giới hạn 50 ký tự hiện là 255 trong Django 1.8

-

Câu trả lời ban đầu:

Tôi cũng vừa gặp phải chiều nay và tôi có một bản sửa lỗi (các loại)

Bài đăng này ở đây ngụ ý rằng đó là một lỗi Django liên quan đến độ dài của giá trị được phép cho auth_permission. Việc đào sâu hơn sẽ ủng hộ ý tưởng đó, cũng như vé Django này (mặc dù ban đầu nó liên quan đến MySQL).

Về cơ bản, tên quyền được tạo dựa trên verbose_name của một mô hình cộng với chuỗi quyền mô tả và có thể làm tràn lên hơn 50 ký tự được phép trong auth.models.Permission.name.

Để trích dẫn một bình luận về vé Django:

Các tiền tố dài nhất cho giá trị chuỗi trong cột auth_permission.name là "Có thể thay đổi" và "Có thể xóa", cả hai đều có 11 ký tự. Độ dài tối đa của cột là 50 nên độ dài tối đa của Meta.verbose_name là 39.

Một giải pháp sẽ là hack cột đó để hỗ trợ> 50 ký tự (tôi nói lý tưởng nhất là thông qua một cuộc di cư Nam để nó có thể dễ dàng lặp lại) nhưng cách khắc phục nhanh nhất, đáng tin cậy nhất mà tôi có thể nghĩ ra chỉ đơn giản là tạo định nghĩa verbose_name dài hơn của tôi. ngắn hơn rất nhiều (từ 47 ký tự trong verbose_name xuống còn khoảng 20). Hiện tại tất cả đều hoạt động tốt.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NULL so với `vô cực` trong các loại phạm vi PostgreSQL

  2. Vị trí cột id trong Postgresql có quan trọng không?

  3. PostgreSQL gan ruột:“Resjunk” là gì?

  4. Hạn chế tên cột bảng Postgres?

  5. Làm thế nào để chọn mảng 1d từ mảng 2d?