Ajouter des champs à une base de données déjà existante pour Django (version & lt; 1.7)
Je suis en utilisant Django ( < v1.7), avec SQLite3 que le moteur de base de données.
Je suis en train d'ajouter un nouveau champ à un modèle déjà existant de la classe. Cette classe a déjà des données qui y sont associées.
manage.py syncdb
n'est pas l'ajout de nouveaux champs dans la bd.
Est qu'il y avait un moyen de:
- Ajouter le nouveau Champ de la déjà existants de la classe, et assurez-vous qu'un db d'entrée est alloué?
- Remplir ce nouveau champ avec une chaîne vide pour tous les déjà existant db entrées?
source d'informationauteur Rami_H
Vous devez vous connecter pour publier un commentaire.
Installer sud dans votre django et vous pouvez facilement manipuler les tables existantes. vérifier cette
Si vous voulez vraiment utiliser Django-Sud, l'installer sur votre django, après l'ajout de votre nouveaux champs à votre modèle existant exécuter
Il va créer un fichier dans votre projet d'application. ensuite,
c'est ça votre table est modifiée.
Cette réponse est encore en train de visibilité, mais elle est dépassée. Depuis 1.7 Django est livré avec un construit-dans la migration système, écrit par le même auteur que
South
et a dépréciésyncdb
mais il faudra encore travailler.Vous aurez simplement besoin de quelques commandes pour ajouter automatiquement des nouvelles colonnes:
Il sera utile de comprendre ce qui se passe sous le capot, mais ce sont les bases. Merci de poser de nouvelles questions pour obtenir des réponses sur 1,7 et migrations si vous lisez encore ce vieux post.
Pour django < 1.7
syncdb
sera pas ajouter de nouvelles colonnes. Voirhttp://docs.djangoproject.com/en/dev/ref/django-admin/#syncdb
Vous devez les ajouter manuellement. Par exemple,. remplacer
<>
avec les info:Vous pouvez voir ce que Django aurait pu le faire à générer des colonnes sur une nouvelle
syncdb
en utilisant:et de copier-coller
ALTER TABLE
consolidés à partir de là.Sinon, vous pouvez regarder dans les applications tierces telles que Django-Sud qui sont à la base de données des outils de migration.
Il y a d'autres options de migration des applications (bien que le Sud est le plus utilisé).
J'ai utilisé django-évolution pour mes projets, et il a été très facile à installer et commencer à utiliser.
Sud semble être plus complet, mais pour les tâches simples, django-évolution peut être adapté.