Résolue

Impossible de mettre en production Python Anywhere

# Django # Migrations

Gabriel Trouvé

Mentor

Bonsoir,

ça fait depuis 23h que je suis dessus mais je n'y arrive pas.

Impossible de mettre en prod, apparemment ça vient de la BDD
Voici les message quand je fais mes migrations.

Savez vous ce que je peux faire ?

Le champ details s'attends à avoir max_length selon l'erreur.

j'ai bien définis max_length aux RichTextField() de ckeditor.

Mon repo si ça peut aider ==> https://github.com/gabigab117/remy.git

Actuellement si je vais sur l'app depuis mon url anywhere : (1146, "Table 'RemySevestre$idea4.ideas_idea' doesn't exist"). Donc on voit bien que cette table n'a pas été créée.

Je pense que je serai moins embêté à utiliser PostgreSQL ? C'est vrai que c'est recommandé dans la doc.

Merci d'avance

Hello,

tu as un github ou le projet est privé ? sinon peux tu montrer les modèles concernés ? (s'il y a des foreign keys)

Gabriel Trouvé

Mentor

https://github.com/gabigab117/remy.git

et voici ! :)

A priori c'est un bug lié à Mysql.

https://code.djangoproject.com/ticket/2495

Pour un ckeditor field, il faut que le format de colonne dans la database soit LongText.

Essyaes ça mais je ne suis pas sûr que ça fonctionne:

details = RichTextField(unique=True, verbose_name="Détails", db_column='details', db_type='longtext')

je l'avais rajouté justement car j'avais ce problème. mais que je le mette ou pas ca ne change rien au

Du coup ça ne fonctionne pas avec le db_type ce n'est pas un paramètre.

Salut Gab !

Je viens de regarder ton code, j'aurais tendance à essayer d'enlever tous les paramètres pour commencer sur ton TextField, donc passer de ça :

details = models.TextField(unique=True, verbose_name="Détails", max_length=10000)

à ça :

details = models.TextField()

Mettre un unique sur un TextField ça ne me semble de base pas la meilleure chose à faire, un TextField ça peut contenir pas mal de choses, je comprends que tu souhaites éviter que deux idées similaires soient envoyées, mais j'imagine qu'il serait vraiment très très peu probable que 2 personnes écrivent exactement le même texte. Et niveau performances pas sûr que ce soit le plus efficace du coup parce que ça fait pas mal de données à comparer. Après il faudrait creuser un peu plus, mais ça m'a fait tiquer sur le principe.

Mais sinon, essaie de déclarer juste le TextField sans paramètres voir si ça règle ton problème de migration.

Gabriel Trouvé

Mentor

Salut Thibault !

En fait j'avais fait ça à la base car j'avais peur que quelqu'un spam ou bourrine la BDD en copiant le même texte pleins de fois.
Mais j'ai deja recaptcha en fait.

Et....
ça fonctionne en enlevant les paramètres !!! ^^

Merci Thibault et pA !

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.