PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Urządzenie Django nie działa, podając DatabaseError:wartość za długa dla typu znaku zmienna (50)

Aktualizacja:limit 50 znaków wynosi teraz 255 w Django 1.8

--

Oryginalna odpowiedź:

Właśnie spotkałem to po południu i mam poprawkę (rodzaj)

Ten post tutaj sugerował, że jest to błąd Django związany z długością wartości dozwolonej dla auth_permission. Dalsze kopanie potwierdza ten pomysł, podobnie jak ten bilet Django (nawet jeśli początkowo jest związany z MySQL).

Zasadniczo nazwa uprawnienia jest tworzona na podstawie verbose_name modelu oraz opisowego ciągu uprawnień i może przekroczyć 50 znaków dozwolonych w auth.models.Permission.name.

Aby zacytować komentarz na bilecie Django:

Najdłuższe prefiksy wartości ciągu w kolumnie auth_permission.name to „Może zmienić” i „Może usunąć”, oba mają 11 znaków. Maksymalna długość kolumny to 50, więc maksymalna długość Meta.verbose_name to 39.

Jednym z rozwiązań byłoby zhakowanie tej kolumny, aby obsługiwała> 50 znaków (najlepiej poprzez migrację na południe, mówię, aby była łatwa do powtórzenia), ale najszybszą i najbardziej niezawodną poprawką, o której mogłem pomyśleć, było po prostu zrobienie mojej bardzo długiej definicji verbose_name dużo krótsze (od 47 znaków w verbose_name do około 20). Teraz wszystko działa dobrze.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mechanizmy replikacji fizycznej w PostgreSQL

  2. Zdarzenie ROLLBACK wyzwalacze w postgresql

  3. nie można utworzyć rozszerzenia bez roli administratora

  4. Gniazda domeny PostgreSQL UNIX a gniazda TCP

  5. Rails 3.1 - Pushing to Heroku - Błędy podczas instalacji adaptera postgres?