Laravel: Chaîne de données, tronqué à droite: 1406 Données trop long pour la colonne

J'ai une table avec une colonne 'hôtel'. Le projet est créé dans Laravel 5.4, j'ai donc utilisé les Migrations.

    $table->string('hotel', 50);

C'est MYSQL de type VARCHAR (50). C'était bien, parce que quand j'étais en développement, j'ai utilisé court hotel des noms comme "HILTON NEW YORK 5"*.

Le projet est maintenant sur la production et le client a demandé pourquoi ils ne peuvent pas l'entrée de longue hôtel noms. Je l'ai testé avec une telle maquette nom de l'hôtel que "de Long long long long long long long long long et à très très très long nom de l'hôtel 5 étoiles"

Il m'a donné une erreur:

"SQLSTATE[22001]: Chaîne de données, tronqué à droite: 1406 Données trop long pour
la colonne 'hôtel' à la ligne 1"

J'ai ouvert la base de données dans ma Suite Pro et il a changé

  • première VARCHAR (255)
  • puis-TEXTE

Après chaque changement je l'ai testé avec le même "de Long long long long long long long long long et à très très très long nom de l'hôtel 5 commence" et obtenir le même message d'erreur (voir ci-dessus).

J'ai vérifié que le type de la colonne avec

SHOW FIELDS FROM table_name

et il m'a donné

Champ | Type

hôtel | texte

de sorte que le type du champ est "texte" en effet (65 535 caractères).

C'est peut-être en quelque sorte lié avec Laravel fichier de Migration (voir ci-dessus) où j'ai mis VARCHAR (50), dans le début? Mais je ne peux pas ré-exécuter la migration sur la production, parce que la table contient des données maintenant.

Serais reconnaissant de toute aide.


Mise à JOUR:
J'ai découvert qu'en fait, il enregistre ce long nom de l'hôtel dans la DB. Mais l'utilisateur obtient toujours cette fâcheuse erreur à chaque fois après la soumission du formulaire...

  • Vous pouvez certainement créer une migration de modifier le type de champ. Tant que c'est quelque chose de semblable, il ne devrait pas être un problème.
  • Comme toujours, l'essayer sur votre copie locale, juste au cas où, mais je ne vois pas pourquoi ça ne marcherait pas.
  • Salut, les gars. Je vous remercie. J'ai créé une nouvelle migration comme Alexey a expliqué dans sa réponse ci-dessous et il a couru (locale), mais l'erreur est toujours s'affiche chaque fois que le formulaire est soumis....:(
InformationsquelleAutor Sergej Fomin | 2018-01-27