Étrange PostgreSQL “valeur trop long pour le type character varying(500)”

J'ai une Postgres schéma qui ressemble à:

Étrange PostgreSQL “valeur trop long pour le type character varying(500)”

Le problème est que quand je veux enregistrer le texte de plus de 500 caractères dans la colonne description, j'obtiens l'erreur:

value too long for type character varying(500)

Dans la documentation de Postgresql il est dit de type texte peut avoir nombre illimité de caractères.

Je suis en utilisant postgresql-9.1.

Ce tableau a été généré à l'aide de Django 1.4 et le type de champ dans le modèle est TextField, si ce qui contribue à expliquer le problème de plus.

Toutes les idées que pourquoi ce qui se passe et ce que je peux faire pour le réparer?

  • double possible de Django luminaire échoue, déclarant que "la DatabaseError: valeur trop long pour le type character varying(50)"
  • Le problème se produit avec psql inserts, ou seulement de django?
  • Depuis que vous avez généré la table à partir d'un modèle Django, la façon de montrer votre Django modèle de code?
  • Je viens de vérifier le psql insérer via la ligne de commande, l'erreur ne se produit pas là. Il pourrait être un problème d'encodage.
  • Est-il possible que cette colonne a été character varying(500), mais a été changé pour le texte, mais le changement n'a pas été validée, et donc le django client ne peut pas voir le changement? Cela semble peu probable, mais l'erreur de django certainement indique que, pour elle, la colonne est de type char, var, tandis que nous voyons clairement à partir de cette sortie qu'il est en mode texte.
  • Non, il n'est pas un problème d'encodage. S'il vous plaît montrer la réelle instruction INSERT généré par Django, et le plein, le texte exact du message d'erreur. Vous pouvez obtenir à la fois de l'PostgreSQL fichiers journaux.
  • Je viens de vérifier le fichier de log de l'erreur était survenue lors d'un domaine connexe a été enregistré, ce qui n'était pas respectueux de par les 500 char contrainte
  • Heureux d'entendre que vous avez une solution. Maintenant, vous savez une chose à vérifier, et une chose de plus à inclure dans les questions d'avenir 🙂
  • Merci pour votre réponse, m'a présenté à un très maniable morceau de connaissances pour le suivi des bogues.

InformationsquelleAutor Parham | 2012-11-21