Si vous ne vous souciez pas des données :
Le meilleur moyen serait de supprimer la base de données et d'exécuter à nouveau syncdb
. Ou vous pouvez exécuter :
Pour Django >= 1.5
python manage.py flush
Pour Django < 1.5
python manage.py reset appname
(vous pouvez ajouter --no-input
à la fin de la commande pour qu'elle saute l'invite interactive.)
Si vous vous souciez des données :
D'après la documentation :
syncdb ne créera des tables que pour les modèles qui n'ont pas encore été installés. Il n'émettra jamais de déclarations ALTER TABLE pour correspondre aux modifications apportées à une classe de modèle après l'installation. Les modifications apportées aux classes de modèles et aux schémas de bases de données impliquent souvent une forme d'ambiguïté et, dans ces cas, Django devrait deviner les modifications correctes à apporter. Il existe un risque de perte de données critiques dans le processus.
Si vous avez apporté des modifications à un modèle et souhaitez modifier les tables de la base de données pour correspondre, utilisez la commande sql pour afficher la nouvelle structure SQL et comparez-la à votre schéma de table existant pour déterminer les modifications à apporter.
https://docs.djangoproject.com/fr/dev/ref/django-admin/
Référence : FAQ - https://docs.djangoproject.com/fr/dev/faq/models/#if-i-make-changes-to-a-model-how-do-i-update-the-database
Les gens recommandent également South (http://south.aeracode.org/docs/about.html#key-features), mais je ne l'ai pas essayé.