À partir de la version 1.7+ de Django, la fonction intégrée support des migrations permet des migrations de schémas de bases de données qui préservent les données. C'est probablement une meilleure approche que la solution ci-dessous.
Une autre option, qui ne nécessite pas d'applications supplémentaires, consiste à utiliser l'interface intégrée de l'application manage.py
pour exporter vos données, effacer la base de données et restaurer les données exportées.
Les méthodes ci-dessous mettront à jour les tables de la base de données pour votre application, mais détruire complètement toutes les données qui existaient dans ces tables. Si les modifications que vous avez apportées à votre modèle d'application ne rompent pas votre ancien schéma (par exemple, vous avez ajouté un nouveau champ facultatif), vous pouvez simplement vider les données avant et les recharger après, comme suit :
Django 1.4.15 et versions antérieures
python manage.py dumpdata <your_app> > temp_data.json
python manage.py reset <your_app>
python manage.py loaddata temp_data.json
Django 1.5 et plus récent
python manage.py dumpdata <your_app> > temp_data.json
python manage.py sqlclear <your_app> | python manage.py dbshell
python manage.py syncdb
python manage.py loaddata temp_data.json
(Le reset
a été dépréciée puis supprimée dans Django 1.5 )
Si les modifications que vous apportez entraînent une rupture de l'ancien schéma, cela ne fonctionnera pas. Sud o L'évolution de Django sont formidables.
2 votes
Vous devez modifier la réponse acceptée.