/ / Modifiez les modèles Django - Django, Modèles Django, Base de données Django

Modifier les modèles de django - django, django-models, django-database

Je viens de le tester moi-même. J'avais des modèles Django et il y a déjà eu des exemples de modèles dans la base de données.

Ensuite, j'ai ajouté un champ entier factice à un modèle et j'ai exécuté manage.py syncdb. Vérifié la base de données, et rien n'est arrivé à la table. Je ne vois pas le champ supplémentaire ajouté dans.

Est-ce le comportement attendu? Quelle est la bonne façon de modifier le modèle et comment cela modifiera-t-il les données déjà présentes dans la base de données?

Réponses:

1 pour la réponse № 1

Veuillez utiliser south pour que tout type de modification soit reflétée dans vos tables de base de données, voici le lien pour utiliser le sud Lien vers la documentation Sud


1 pour la réponse № 2

Django ne modifiera pas les tables déjà existantes, elles le disent même dans la documentation. La raison en est que Django ne peut garantir qu’aucune information ne sera perdue.

Vous avez deux options si vous voulez changertables existantes. Supprimez-les et exécutez à nouveau syncdb, mais vous devrez stocker vos données d’une manière ou d’une autre si vous souhaitez les conserver. L'autre option consiste à utiliser un outil de migration pour le faire à votre place. Django peut vous montrer le code SQL du nouveau schéma de base de données et vous pouvez le comparer à la version actuelle de la base de données pour créer le script de mise à jour.

Vous pouvez même mettre à jour votre base de données manuellement s’il s’agit d’un petit changement et que vous ne voulez pas vous soucier des outils de migration, bien que je vous recommande de l’utiliser.