J’ai récemment mis à jour mon modèle, ajouté un BooleanField Cependant quand je fais `` , il n’ajoute pas le nouveau champ à la base de données pour le modèle. Comment puis-je y remédier ?
Réponses
Trop de publicités?
<h2>De Django 1,7 à partir</h2>
<p>Django a en charge intégrée des migrations - jetez un oeil à <a href="https://docs.djangoproject.com/en/dev/topics/migrations/">la documentation</a>.</p>
<h2>Django 1.6 ou version antérieure</h2>
<p>Django ne supporte pas les migrations hors de la boîte. Il y a une app enfichable pour Django qui fait exactement cela bien, et il fonctionne très bien. Ça s’appelle <a href="http://south.aeracode.org">South</a>.</p>
che
Points
6899
Django actuellement ne le fait pas automatiquement. Vos options sont les suivantes:
- Supprimer la table de la base de données, puis de le recréer dans le nouveau formulaire à l'aide de syncdb.
- Imprimer SQL pour la base de données à l'aide de
python manage.py sql (appname)
, trouver l'ajout d'une ligne pour le champ et l'ajouter manuellement à l'aide d'alter table
la commande SQL. (Cela vous permettra aussi de choisir des valeurs du champ pour vos dossiers en cours.) - Utiliser du Sud (par Dominique réponse).
Dan
Points
16670
Comme suggéré dans le haut de réponse, j'ai essayé d'utiliser le Sud, et après une heure de frustration obscur de la migration des erreurs décidé d'aller avec Django Évolution de la place.
Je pense qu'il est plus facile de commencer avec de Sud, et il a parfaitement fonctionné la première fois que j'ai tapé ./manage.py evolve --hint --execute
,, donc je suis heureux avec elle.
Aliixx
Points
643