with mac elephantsql django postgresql

django - mac - elephantsql



DatabaseError: valor demasiado largo para el tipo de carácter que varía(100) (7)

¿Puedo apostar dinero que tiene un SlugField sin una longitud predefinida? Establézcalo en 255 y migre

Tengo un sitio web de Django que ejecuta un mini CMS que hemos construido internamente hace años, está usando postgresql. Al guardar un título simple y un párrafo de texto, aparece el siguiente error:

value too long for type character varying(100)

Lo extraño es que ni una sola columna está variando (100), todas son 200 o 250, incluso las de Django predeterminadas han cambiado de 100 a 200 debido a un boleto reabierto que se menciona aquí.

¿Alguien sabe de una solución a este problema?


Este es un mensaje de error de Postgres y no de django.

Parece que has cambiado la longitud del campo en los models.py , pero eso no cambia la longitud de la base de datos que se creó cuando hiciste un manage.py syncdb .

Tienes que modificar la longitud del campo en la base de datos, directamente.


La respuesta de me indicó la dirección correcta. Tuve el mismo error, excepto que fue con un FileField.

Los campos tienen un max_length, incluso si no ha establecido explícitamente un max_length. Aumente el valor para que sus datos se ajusten para evitar el error.

En mi caso, los datos eran demasiado grandes para almacenarlos razonablemente en la base de datos. Recurrí a guardar mi archivo en el disco y luego guardar la ruta del archivo en la base de datos.


Me doy cuenta de que la pregunta ya está respondida, pero para otros que vienen aquí cuando buscan el mensaje de error:

En mi caso, el problema fue que el nombre de mi tabla superaba los 50 caracteres. Aparentemente esto no está permitido. Cambiar el nombre de la tabla resolvió el problema.

Lea más aquí: https://code.djangoproject.com/ticket/18959


Si está utilizando Django, y nada de esto está funcionando. Intenta eliminar todos los archivos de migración y vuelve a ejecutar

python manage.py makemigrations

entonces

python manage.py migrate



Tuve un problema similar con django-autoslugfield. Estaba usando un paquete similar y luego cambié a django-autoslugfield.

Recibí este error: el value too long for type character varying(50)

A pesar de que mis modelos.py tenían:

slug = AutoSlugField(max_length=255, populate_from=''name'', unique=True)

y en mi db el tipo era el character varying 255

una vez que elimine max_length=255 del campo, es decir

slug = AutoSlugField(populate_from=''name'', unique=True)

entonces funcionó bien