Si vous ne vous souciez pas des données:
Le meilleur moyen serait de supprimer la base de données et de l'exécuter à syncdb
nouveau. 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 ignore l'invite interactive.)
Si vous vous souciez des données:
À partir de 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 d'instructions 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èle et aux schémas de base de données impliquent souvent une certaine forme d'ambiguïté et, dans ces cas, Django devrait deviner les modifications correctes à apporter. Il y a un risque que des données critiques soient perdues au cours du processus.
Si vous avez apporté des modifications à un modèle et souhaitez modifier les tables de la base de données pour qu'elles correspondent, utilisez la commande sql pour afficher la nouvelle structure SQL et comparez-la à votre schéma de table existant pour déterminer les modifications.
https://docs.djangoproject.com/en/dev/ref/django-admin/
Référence: FAQ - https://docs.djangoproject.com/en/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é.